Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
MaterialService
Inherits from: Instance → Object
MaterialService is the game service responsible for managing materials. It is the container for global MaterialVariant instances. MaterialVariant can be child or descendant of MaterialService. For each base Material type, MaterialService internally keeps a set of MaterialVariant references. MaterialVariant.Name is the key to access it. The MaterialVariant.Name and MaterialVariant.BaseMaterial are combined to work as an identifier. If more than one MaterialVariant object has the same name and BaseMaterial under MaterialService, only one of them can be used.
MaterialService has some (Material)Name properties. Assigning a MaterialVariant Name replaces the built-in material with the specified MaterialVariant. If the MaterialService can't find a matching MaterialVariant, it falls back to built-in material. Note BaseMaterial should also match, for example, a MaterialVariant with BaseMaterial Grass can only be assigned to MaterialService.GrassName, not AsphaltName or any other names. These properties are not scriptable but can read and write using MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() function.
MaterialService has a MaterialService.Use2022Materials property that switches between legacy materials and new materials introduced in year 2022. Because legacy and user-generated (new) terrain materials use different encoding, using legacy terrain materials and MaterialVariant at the same time has a performance penalty. If your game is using pre-2022 terrain materials, avoid overriding any built-in materials. Migrate to 2022 materials if possible.
Inherits from: Instance
Memory category: Instances
Tags: NotCreatable, Service
Properties
| Name | Type / Returns | Description |
|---|---|---|
| MaterialService.AsphaltName | string | Specify MaterialVariant name to override built-in Asphalt. |
| MaterialService.BasaltName | string | Specify MaterialVariant name to override built-in Basalt. |
| MaterialService.BrickName | string | Specify MaterialVariant name to override built-in Brick. |
| MaterialService.CardboardName | string | Specify MaterialVariant name to override built-in Cardboard. |
| MaterialService.CarpetName | string | Specify MaterialVariant name to override built-in Carpet. |
| MaterialService.CeramicTilesName | string | Specify MaterialVariant name to override built-in CeramicTiles. |
| MaterialService.ClayRoofTilesName | string | Specify MaterialVariant name to override built-in ClayRoofTiles. |
| MaterialService.CobblestoneName | string | Specify MaterialVariant name to override built-in Cobblestone. |
| MaterialService.ConcreteName | string | Specify MaterialVariant name to override built-in Concrete. |
| MaterialService.CorrodedMetalName | string | Specify MaterialVariant name to override built-in CorrodedMetal. |
| MaterialService.CrackedLavaName | string | Specify MaterialVariant name to override built-in CrackedLava. |
| MaterialService.DiamondPlateName | string | Specify MaterialVariant name to override built-in DiamondPlate. |
| MaterialService.FabricName | string | Specify MaterialVariant name to override built-in Fabric. |
| MaterialService.FoilName | string | Specify MaterialVariant name to override built-in Foil. |
| MaterialService.GlacierName | string | Specify MaterialVariant name to override built-in Glacier. |
| MaterialService.GraniteName | string | Specify MaterialVariant name to override built-in Granite. |
| MaterialService.GrassName | string | Specify MaterialVariant name to override built-in Grass. |
| MaterialService.GroundName | string | Specify MaterialVariant name to override built-in Ground. |
| MaterialService.IceName | string | Specify MaterialVariant name to override built-in Ice. |
| MaterialService.LeafyGrassName | string | Specify MaterialVariant name to override built-in LeafyGrass. |
| MaterialService.LeatherName | string | Specify MaterialVariant name to override built-in Leather. |
| MaterialService.LimestoneName | string | Specify MaterialVariant name to override built-in Limestone. |
| MaterialService.MarbleName | string | Specify MaterialVariant name to override built-in Marble. |
| MaterialService.MetalName | string | Specify MaterialVariant name to override built-in Metal. |
| MaterialService.MudName | string | Specify MaterialVariant name to override built-in Mud. |
| MaterialService.PavementName | string | Specify MaterialVariant name to override built-in Pavement. |
| MaterialService.PebbleName | string | Specify MaterialVariant name to override built-in Pebble. |
| MaterialService.PlasterName | string | Specify MaterialVariant name to override built-in Plaster. |
| MaterialService.PlasticName | string | Specify MaterialVariant name to override built-in Plastic. |
| MaterialService.RockName | string | Specify MaterialVariant name to override built-in Rock. |
| MaterialService.RoofShinglesName | string | Specify MaterialVariant name to override built-in RoofShingles. |
| MaterialService.RubberName | string | Specify MaterialVariant name to override built-in Rubber. |
| MaterialService.SaltName | string | Specify MaterialVariant name to override built-in Salt. |
| MaterialService.SandName | string | Specify MaterialVariant name to override built-in Sand. |
| MaterialService.SandstoneName | string | Specify MaterialVariant name to override built-in Sandstone. |
| MaterialService.SlateName | string | Specify MaterialVariant name to override built-in Slate. |
| MaterialService.SmoothPlasticName | string | Specify MaterialVariant name to override built-in SmoothPlastic. |
| MaterialService.SnowName | string | Specify MaterialVariant name to override built-in Snow. |
| MaterialService.Use2022Materials | boolean | Switch built-in material pack. |
| MaterialService.WoodName | string | Specify MaterialVariant name to override built-in Wood. |
| MaterialService.WoodPlanksName | string | Specify MaterialVariant name to override built-in WoodPlanks. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.Archivable | boolean | Determines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published. |
| Instance.archivable | boolean | |
| Instance.Capabilities | SecurityCapabilities | The set of capabilities allowed to be used for scripts inside this container. |
| Instance.IsInSandbox | boolean | Indicates whether the instance is inside a sandboxed container. |
| Instance.Name | string | A non-unique identifier of the Instance. |
| Instance.Parent | Instance | Determines the hierarchical parent of the Instance. |
| Instance.PredictionMode | PredictionMode | Reflects the client-side prediction mode applied to the instance under server-authoritative physics. |
| Instance.RobloxLocked | boolean | A deprecated property that used to protect CoreGui objects. |
| Instance.Sandboxed | boolean | When enabled, the instance can only access abilities in its Capabilities list. |
| Instance.UniqueId | UniqueId | A unique identifier for the instance. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.ClassName | string | A read-only string representing the class this Object belongs to. |
| Object.className | string |
MaterialService.AsphaltName
Specify MaterialVariant name to override built-in Asphalt. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Asphalt. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.BasaltName
Specify MaterialVariant name to override built-in Basalt. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Basalt. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.BrickName
Specify MaterialVariant name to override built-in Brick. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Brick. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.CardboardName
Specify MaterialVariant name to override built-in Cardboard. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Cardboard. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.CarpetName
Specify MaterialVariant name to override built-in Carpet. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Carpet. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.CeramicTilesName
Specify MaterialVariant name to override built-in CeramicTiles. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to CeramicTiles. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.ClayRoofTilesName
Specify MaterialVariant name to override built-in ClayRoofTiles. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to ClayRoofTiles. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.CobblestoneName
Specify MaterialVariant name to override built-in Cobblestone. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Cobblestone. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.ConcreteName
Specify MaterialVariant name to override built-in Concrete. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Concrete. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.CorrodedMetalName
Specify MaterialVariant name to override built-in CorrodedMetal. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to CorrodedMetal. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.CrackedLavaName
Specify MaterialVariant name to override built-in CrackedLava. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to CrackedLava. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.DiamondPlateName
Specify MaterialVariant name to override built-in DiamondPlate. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to DiamondPlate. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.FabricName
Specify MaterialVariant name to override built-in Fabric. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Fabric. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.FoilName
Specify MaterialVariant name to override built-in Foil. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Foil. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.GlacierName
Specify MaterialVariant name to override built-in Glacier. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Glacier. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.GraniteName
Specify MaterialVariant name to override built-in Granite. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Granite. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.GrassName
Specify MaterialVariant name to override built-in Grass. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Grass. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.GroundName
Specify MaterialVariant name to override built-in Ground. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Ground. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.IceName
Specify MaterialVariant name to override built-in Ice. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Ice. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.LeafyGrassName
Specify MaterialVariant name to override built-in LeafyGrass. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to LeafyGrass. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.LeatherName
Specify MaterialVariant name to override built-in Leather. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Leather. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.LimestoneName
Specify MaterialVariant name to override built-in Limestone. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Limestone. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.MarbleName
Specify MaterialVariant name to override built-in Marble. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Marble. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.MetalName
Specify MaterialVariant name to override built-in Metal. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Metal. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.MudName
Specify MaterialVariant name to override built-in Mud. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Mud. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.PavementName
Specify MaterialVariant name to override built-in Pavement. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Pavement. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.PebbleName
Specify MaterialVariant name to override built-in Pebble. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Pebble. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.PlasterName
Specify MaterialVariant name to override built-in Plaster. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Plaster. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.PlasticName
Specify MaterialVariant name to override built-in Plastic. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Plastic. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.RockName
Specify MaterialVariant name to override built-in Rock. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Rock. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.RoofShinglesName
Specify MaterialVariant name to override built-in RoofShingles. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to RoofShingles. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.RubberName
Specify MaterialVariant name to override built-in Rubber. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Rubber. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.SaltName
Specify MaterialVariant name to override built-in Salt. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Salt. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.SandName
Specify MaterialVariant name to override built-in Sand. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Sand. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.SandstoneName
Specify MaterialVariant name to override built-in Sandstone. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Sandstone. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.SlateName
Specify MaterialVariant name to override built-in Slate. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Slate. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.SmoothPlasticName
Specify MaterialVariant name to override built-in SmoothPlastic. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to SmoothPlastic. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.SnowName
Specify MaterialVariant name to override built-in Snow. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Snow. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.Use2022Materials
When it's false, built-in materials use the material pack before 2022. When it's true, built-in materials use the material pack released in 2022.
| Field | Value |
|---|---|
| type | boolean |
| tags | ["NotReplicated"] |
| security | {"read":"RobloxScriptSecurity","write":"RobloxScriptSecurity"} |
| thread safety | ReadSafe |
| category | Material Pack |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["Material"] |
MaterialService.WoodName
Specify MaterialVariant name to override built-in Wood. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to Wood. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
MaterialService.WoodPlanksName
Specify MaterialVariant name to override built-in WoodPlanks. The Specified MaterialVariant must have MaterialVariant.BaseMaterial set to WoodPlanks. This property is not scriptable; use MaterialService:GetBaseMaterialOverride() and MaterialService:SetBaseMaterialOverride() to access it from scripts.
| Field | Value |
|---|---|
| type | string |
| tags | ["NotScriptable"] |
| security | {"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"} |
| thread safety | ReadSafe |
| category | Material Overrides |
| serialization | {"can_load":true,"can_save":true} |
| capabilities | ["Material"] |
Methods
| Name | Type / Returns | Description |
|---|---|---|
| MaterialService:GetBaseMaterialOverride | string | Get the override MaterialVariant name of specified Material type. |
| MaterialService:GetMaterialVariant | MaterialVariant | Get the effective MaterialVariant reference given a name and Material. |
| MaterialService:SetBaseMaterialOverride | () | Set a MaterialVariant name that overrides a built-in material. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance:AddTag | () | Applies a tag to the instance. |
| Instance:children | Instances | Returns an array of the object's children. |
| Instance:ClearAllChildren | () | This method destroys all of an instance's children. |
| Instance:Clone | Instance | Create a copy of an instance and all its descendants, ignoring instances that are not Archivable. |
| Instance:clone | Instance | |
| Instance:Destroy | () | Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children. |
| Instance:destroy | () | |
| Instance:FindFirstAncestor | Instance? | Returns the first ancestor of the Instance whose Instance.Name is equal to the given name. |
| Instance:FindFirstAncestorOfClass | Instance? | Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className. |
| Instance:FindFirstAncestorWhichIsA | Instance? | Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstChild | Instance? | Returns the first child of the Instance found with the given name. |
| Instance:findFirstChild | Instance | |
| Instance:FindFirstChildOfClass | Instance? | Returns the first child of the Instance whose ClassName is equal to the given class name. |
| Instance:FindFirstChildWhichIsA | Instance? | Returns the first child of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstDescendant | Instance? | Returns the first descendant found with the given Instance.Name. |
| Instance:GetActor | Actor? | Returns the Actor associated with the Instance, if any. |
| Instance:GetAttribute | Variant | Returns the value which has been assigned to the given attribute name. |
| Instance:GetAttributeChangedSignal | RBXScriptSignal | Returns an event that fires when the given attribute changes. |
| Instance:GetAttributes | Dictionary | Returns a dictionary of the instance's attributes. |
| Instance:GetChildren | Instances | Returns an array containing all of the instance's children. |
| Instance:getChildren | Instances | |
| Instance:GetDebugId | string | Returns a coded string of the debug ID used internally by Roblox. |
| Instance:GetDescendants | Instances | Returns an array containing all of the descendants of the instance. |
| Instance:GetFullName | string | Returns a string describing the instance's ancestry. |
| Instance:GetStyled | Variant | Returns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified. |
| Instance:GetStyledPropertyChangedSignal | RBXScriptSignal | Returns an event that fires when the given style property changes on the instance. |
| Instance:GetTags | Array | Gets an array of all tags applied to the instance. |
| Instance:HasTag | boolean | Check whether the instance has a given tag. |
| Instance:IsAncestorOf | boolean | Returns true if an Instance is an ancestor of the given descendant. |
| Instance:IsDescendantOf | boolean | Returns true if an Instance is a descendant of the given ancestor. |
| Instance:isDescendantOf | boolean | |
| Instance:IsPropertyModified | boolean | Returns true if the value stored in the specified property is not equal to the code-instantiated default. |
| Instance:QueryDescendants | Instances | Returns an array containing all descendants of the instance that match the selector string. |
| Instance:Remove | () | Sets the object's Parent to nil, and does the same for all its descendants. |
| Instance:remove | () | |
| Instance:RemoveTag | () | Removes a tag from the instance. |
| Instance:ResetPropertyToDefault | () | Resets a property to its default value. |
| Instance:SetAttribute | () | Sets the attribute with the given name to the given value. |
| Instance:WaitForChild | Instance | Returns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object:GetPropertyChangedSignal | RBXScriptSignal | Get an event that fires when a given property of the object changes. |
| Object:IsA | boolean | Returns true if an object's class matches or inherits from a given class. |
| Object:isA | boolean |
MaterialService:GetBaseMaterialOverride
Get the override MaterialVariant name of specified Material type.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| material | Material | Material type to be fetched. |
Returns
| Type | Description |
|---|---|
| string | MaterialVariant name currently set as override. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["Material"] |
MaterialService:GetMaterialVariant
Get the effective MaterialVariant reference given a MaterialVariant name and BaseMaterial. This MaterialVariant must be a descendant of MaterialService. Returns nil if no matching instance exists.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| material | Material | BaseMaterial of MaterialVariant. | |
| name | string | Name of MaterialVariant. |
Returns
| Type | Description |
|---|---|
| MaterialVariant | A MaterialVariant instance that matches parameters. |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["Material"] |
MaterialService:SetBaseMaterialOverride
Set a MaterialVariant name that overrides a built-in material.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| material | Material | The Material type to be changed. | |
| name | string | Name of the MaterialVariant object. |
Returns
| Type | Description |
|---|---|
| () |
| Field | Value |
|---|---|
| security | None |
| thread safety | Unsafe |
| capabilities | ["Material"] |
Events
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.AncestryChanged | Fires when the Instance.Parent property of this object or one of its ancestors is changed. | |
| Instance.AttributeChanged | Fires whenever an attribute is changed on the Instance. | |
| Instance.ChildAdded | Fires after an object is parented to this Instance. | |
| Instance.childAdded | ||
| Instance.ChildRemoved | Fires after a child is removed from this Instance. | |
| Instance.DescendantAdded | Fires after a descendant is added to the Instance. | |
| Instance.DescendantRemoving | Fires immediately before a descendant of the Instance is removed. | |
| Instance.Destroying | Fires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy(). | |
| Instance.StyledPropertiesChanged | Fires whenever any style property is changed on the instance, including when a property is set to nil. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.Changed | Fires immediately after a property of the object changes, with some limitations. |