Materials

Roblox's materials are unlike materials on other platforms, in that their visual appearance and their physical properties reflect those of materials in the real world. For example, concrete is heavier than plastic and sinks faster in water. When you set the material of a part or terrain, Roblox simulates its physical material properties to make this behavior just work.

The Roblox engine offers a range of base 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.

You can also create your own custom materials and apply them to parts or terrain. Custom materials have an additional adaptive materials behavior that lets you 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 Studio's Material Manager, a streamlined tool for working with materials.

Material Manager button in Studio toolbar Home tab

The material manager window consists of four main sections:

Material Manager window showing four distinct sections (A-D)

The Toolbar displays key commands and a material search field.

The Browser displays available materials, either all at once or by category.

The Palette displays the materials in the currently selected category.

The Inspector displays information about the selected material.

You can change the window's layout within Studio, just like other windows, and you can toggle between grid or list view using the view options button in the top-right corner.

View options button in top-right corner of Material Manager window

Applying Materials to Parts

Apply to Selected

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

  1. In the 3D viewport or Explorer, select one or more parts.

  2. In the Material Manager palette, hover your mouse over the desired material (you don't need to select it) and click the Apply to Selected Parts button.

    Apply to Selected Parts button indicated in Material Manager

Paint Tool

You can also use a material as a painting tool that applies to parts:

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

  2. In the top-left corner, click the Paint Parts With Selected Material button to enable the material as a painting tool.

    Paint Parts With Selected Material button indicated in Material Manager
  3. In the 3D viewport, hover over and click the parts that you want to apply the material to.

  4. When you're done painting, click the button again to disable the tool.

Applying Materials to Terrain

Unlike on parts, you cannot directly apply base materials to terrain through the Material Manager, although you can use it to apply custom materials to terrain.

Custom Materials

The 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. Custom materials are represented by MaterialVariant instances within MaterialService.

Explorer window showing two MaterialVariant instances within MaterialService

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.

Note that 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, see Adobe's documentation.

Creating Custom Materials

You can edit all properties of a custom material in the Material Manager, through the AI-powered Material Generator, or through the properties of a MaterialVariant instance.

Note that if you rename a custom material after applying it to parts, those parts will not 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'll need to re-apply the custom material.

Material Manager

To create a custom material in the Material Manager:

  1. Click the base material from which your custom material will inherit physical properties. If you skip this step, the base material will be Plastic, but you can change it later.

    Base material selected in Material Manager
  2. In the top-left corner, click Create Material Variant.

    Create Material Variant button indicated in Material Manager

    A new variant appears in the palette with an icon in the bottom-right corner, indicating it's a custom material.

    New MaterialVariant tile in Material Manager with icon to indicate a custom material
  3. In the inspector, rename your custom material to describe its purpose. You can change the name later, but if you do so after applying the material to parts, you'll need to re-apply it to those parts.

  4. For each texture map option such as Color or Normal, paste an asset ID or import a new texture from your computer. Square textures work best. If you don't specify an asset for a texture map, that texture remains blank.

  5. If desired, adjust the Studs Per Tile and Pattern values to change how the material looks.

Material Generator

The Material Generator is designed to create material variants from text entries. Using it, you can type any phrase and hit Generate to see results within a few seconds. Once you find a satisfying result, you can instantly save it as a new custom material.

  1. Open the Material Generator tool from the Home tab.

    Material Generator button in Studio toolbar Home tab
  2. In the text box at the top of the window, enter keywords and then click the Generate button. Generating satisfying results can be an iterative process requiring a long list of descriptors to help focus in on the material you want. Here are some tips:

    • For close-up patterns, try using terms like "close up," "top down," and "texture."
    • For simpler repeating patterns, try using terms like "simple," "pattern," "symmetrical," and "flat."
    • For more control, add stylistic terms like "photorealistic," "cartoon," or "hand-drawn."
    • For the ability to change colors, try including terms like "grayscale" which will allow you to tint the material afterwards.

    As follows are some example keyword combos and the approximate results. Note that every click of Generate yields different results, even with the exact same keywords.

    "Stained Glass"

  3. Click a generated image tile to view more options, as well as apply the material in "preview" mode to all selected parts.

  4. Adjust the Studs Per Tile slider to interactively preview how the material's texture will appear on the selected parts. Additionally, test out the Organic toggle which makes materials appear less "repetitive" by randomizing the output.

    Adjustment of Studs Per Tile value and Organic toggle
  5. When ready, choose a Base Material to apply that material's physical properties to your custom material. Then click the Save & Apply Variant button to save the custom material to the Material Manager.

Applying Custom Materials to Parts

For parts, you can use a custom material just like any other material, applying it to selected parts or using it as a paint tool.

You can also apply the new material to a part by setting its MaterialVariant property in the Properties window. In this case, Studio automatically sets its Material property to the base material you chose when creating the material.

Material and MaterialVariant properties set in the Properties window

Applying Custom Materials to Terrain

Unlike on parts, you cannot directly apply custom materials to terrain, although you can set a custom material as a material override to an existing base material for all terrain using that base material.

See Material Overrides for instructions on using a custom material as a global per-place override for any base material.

Material Overrides

You can set a custom material as a material override to make its base material serve as a reference to the custom material. When you do so, Studio will use the custom material for both the textures and physical properties of any part or terrain that uses the custom material.

Setting Overrides

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

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

  2. In the inspector, scroll down to Overrides and enable Set as Override.

    The new override appears as a property of MaterialService in the Properties window.

Terrain Details

By default, applying a custom material to parts or as an override applies that custom material as tiles across each face. For terrain, you can optionally configure TerrainDetail instances to customize the top, side, and bottom of terrain voxels using that custom material.

To customize the faces of terrain using a custom material:

  1. In the palette of the Material Manager, click the custom material.

  2. In the inspector, confirm that its Set as Override toggle is enabled.

  3. In the Terrain Details section, click Create for each face you want to customize.

  4. For each face you enable, expand the arrow to access and edit details such as its name, texture maps, studs per tile, and pattern.

Disabling Overrides

You can disable an entire material override and all base materials that it's currently overriding, or you can disable the override for a specific base material.

  1. In the palette of the Material Manager, click a custom material that's being used as an override.

  2. In the inspector, scroll down to Overrides and disable Set as Override.

Deleting Custom Materials

You can delete a custom material from the Material Manager by selecting it and clicking the Delete button below its preview globe. Alternatively, you can delete its associated MaterialVariant instance within MaterialService of the Explorer.

Delete button indicated in Material Manager

Physical Properties

All materials have built-in physical properties such as density, elasticity, and friction. Through the application of custom materials with unique physical properties, you can affect global material behavior for all parts and terrain which use the custom material, such as creating an extremely slippery variant of the Ice material.

When factoring physical properties, the engine prioritizes more granular per-part settings over material behaviors to determine the effective physical properties of a surface:


Custom physical properties of the specific part.

Custom physical properties of the part's custom material.

Custom physical properties of the material override of the part's material.

The default physical properties of the part's material.

Applying to Custom Materials

To set unique physical properties for any custom material and automatically apply them to all parts and terrain which use the material:

  1. In the palette of the Material Manager, click the custom material.

  2. In the inspector, scroll down to the Physics section and set custom physical properties as detailed in the PhysicalProperties reference.

    Custom physical properties in Material Manager inspector pane

    For any part that uses the custom material and does not have part-specific overrides, the CurrentPhysicalProperties branch in the Properties window reveals that its default physical properties are overridden by the custom material's properties.

    Properties window showing physical properties overridden by those of custom material

Per-Part Overrides

If you need to override a part's custom material properties and set physical properties for that specific part, you can use its CustomPhysicalProperties toggle.

  1. With the part selected, enable CustomPhysicalProperties in the Properties window.

    CustomPhysicalProperties enabled in a part's properties
  2. Set custom physical properties as detailed in the PhysicalProperties reference.

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 ID & Property Reference

Base Materials

Shaders generate the look and feel of materials. The base material shaders work differently than the shader which MaterialVariant instances use, so you can't create custom materials that look exactly like base materials, but you can still create custom materials that use their textures. The following tables list the asset IDs for base 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

Default Colors

The following table lists the default RGB values for each base material. 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 as detailed in the PhysicalProperties reference. The 2022 materials and pre-2022 materials have the same values. 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