18 min read

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

NameType / ReturnsDescription
MaterialService.AsphaltNamestringSpecify MaterialVariant name to override built-in Asphalt.
MaterialService.BasaltNamestringSpecify MaterialVariant name to override built-in Basalt.
MaterialService.BrickNamestringSpecify MaterialVariant name to override built-in Brick.
MaterialService.CardboardNamestringSpecify MaterialVariant name to override built-in Cardboard.
MaterialService.CarpetNamestringSpecify MaterialVariant name to override built-in Carpet.
MaterialService.CeramicTilesNamestringSpecify MaterialVariant name to override built-in CeramicTiles.
MaterialService.ClayRoofTilesNamestringSpecify MaterialVariant name to override built-in ClayRoofTiles.
MaterialService.CobblestoneNamestringSpecify MaterialVariant name to override built-in Cobblestone.
MaterialService.ConcreteNamestringSpecify MaterialVariant name to override built-in Concrete.
MaterialService.CorrodedMetalNamestringSpecify MaterialVariant name to override built-in CorrodedMetal.
MaterialService.CrackedLavaNamestringSpecify MaterialVariant name to override built-in CrackedLava.
MaterialService.DiamondPlateNamestringSpecify MaterialVariant name to override built-in DiamondPlate.
MaterialService.FabricNamestringSpecify MaterialVariant name to override built-in Fabric.
MaterialService.FoilNamestringSpecify MaterialVariant name to override built-in Foil.
MaterialService.GlacierNamestringSpecify MaterialVariant name to override built-in Glacier.
MaterialService.GraniteNamestringSpecify MaterialVariant name to override built-in Granite.
MaterialService.GrassNamestringSpecify MaterialVariant name to override built-in Grass.
MaterialService.GroundNamestringSpecify MaterialVariant name to override built-in Ground.
MaterialService.IceNamestringSpecify MaterialVariant name to override built-in Ice.
MaterialService.LeafyGrassNamestringSpecify MaterialVariant name to override built-in LeafyGrass.
MaterialService.LeatherNamestringSpecify MaterialVariant name to override built-in Leather.
MaterialService.LimestoneNamestringSpecify MaterialVariant name to override built-in Limestone.
MaterialService.MarbleNamestringSpecify MaterialVariant name to override built-in Marble.
MaterialService.MetalNamestringSpecify MaterialVariant name to override built-in Metal.
MaterialService.MudNamestringSpecify MaterialVariant name to override built-in Mud.
MaterialService.PavementNamestringSpecify MaterialVariant name to override built-in Pavement.
MaterialService.PebbleNamestringSpecify MaterialVariant name to override built-in Pebble.
MaterialService.PlasterNamestringSpecify MaterialVariant name to override built-in Plaster.
MaterialService.PlasticNamestringSpecify MaterialVariant name to override built-in Plastic.
MaterialService.RockNamestringSpecify MaterialVariant name to override built-in Rock.
MaterialService.RoofShinglesNamestringSpecify MaterialVariant name to override built-in RoofShingles.
MaterialService.RubberNamestringSpecify MaterialVariant name to override built-in Rubber.
MaterialService.SaltNamestringSpecify MaterialVariant name to override built-in Salt.
MaterialService.SandNamestringSpecify MaterialVariant name to override built-in Sand.
MaterialService.SandstoneNamestringSpecify MaterialVariant name to override built-in Sandstone.
MaterialService.SlateNamestringSpecify MaterialVariant name to override built-in Slate.
MaterialService.SmoothPlasticNamestringSpecify MaterialVariant name to override built-in SmoothPlastic.
MaterialService.SnowNamestringSpecify MaterialVariant name to override built-in Snow.
MaterialService.Use2022MaterialsbooleanSwitch built-in material pack.
MaterialService.WoodNamestringSpecify MaterialVariant name to override built-in Wood.
MaterialService.WoodPlanksNamestringSpecify MaterialVariant name to override built-in WoodPlanks.

Inherited from Instance

NameType / ReturnsDescription
Instance.ArchivablebooleanDetermines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published.
Instance.archivableboolean
Instance.CapabilitiesSecurityCapabilitiesThe set of capabilities allowed to be used for scripts inside this container.
Instance.IsInSandboxbooleanIndicates whether the instance is inside a sandboxed container.
Instance.NamestringA non-unique identifier of the Instance.
Instance.ParentInstanceDetermines the hierarchical parent of the Instance.
Instance.PredictionModePredictionModeReflects the client-side prediction mode applied to the instance under server-authoritative physics.
Instance.RobloxLockedbooleanA deprecated property that used to protect CoreGui objects.
Instance.SandboxedbooleanWhen enabled, the instance can only access abilities in its Capabilities list.
Instance.UniqueIdUniqueIdA unique identifier for the instance.

Inherited from Object

NameType / ReturnsDescription
Object.ClassNamestringA read-only string representing the class this Object belongs to.
Object.classNamestring

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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typeboolean
tags["NotReplicated"]
security{"read":"RobloxScriptSecurity","write":"RobloxScriptSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial 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.

FieldValue
typestring
tags["NotScriptable"]
security{"read":"RobloxEngineSecurity","write":"RobloxEngineSecurity"}
thread safetyReadSafe
categoryMaterial Overrides
serialization{"can_load":true,"can_save":true}
capabilities["Material"]

Methods

NameType / ReturnsDescription
MaterialService:GetBaseMaterialOverridestringGet the override MaterialVariant name of specified Material type.
MaterialService:GetMaterialVariantMaterialVariantGet the effective MaterialVariant reference given a name and Material.
MaterialService:SetBaseMaterialOverride()Set a MaterialVariant name that overrides a built-in material.

Inherited from Instance

NameType / ReturnsDescription
Instance:AddTag()Applies a tag to the instance.
Instance:childrenInstancesReturns an array of the object's children.
Instance:ClearAllChildren()This method destroys all of an instance's children.
Instance:CloneInstanceCreate a copy of an instance and all its descendants, ignoring instances that are not Archivable.
Instance:cloneInstance
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:FindFirstAncestorInstance?Returns the first ancestor of the Instance whose Instance.Name is equal to the given name.
Instance:FindFirstAncestorOfClassInstance?Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className.
Instance:FindFirstAncestorWhichIsAInstance?Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstChildInstance?Returns the first child of the Instance found with the given name.
Instance:findFirstChildInstance
Instance:FindFirstChildOfClassInstance?Returns the first child of the Instance whose ClassName is equal to the given class name.
Instance:FindFirstChildWhichIsAInstance?Returns the first child of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstDescendantInstance?Returns the first descendant found with the given Instance.Name.
Instance:GetActorActor?Returns the Actor associated with the Instance, if any.
Instance:GetAttributeVariantReturns the value which has been assigned to the given attribute name.
Instance:GetAttributeChangedSignalRBXScriptSignalReturns an event that fires when the given attribute changes.
Instance:GetAttributesDictionaryReturns a dictionary of the instance's attributes.
Instance:GetChildrenInstancesReturns an array containing all of the instance's children.
Instance:getChildrenInstances
Instance:GetDebugIdstringReturns a coded string of the debug ID used internally by Roblox.
Instance:GetDescendantsInstancesReturns an array containing all of the descendants of the instance.
Instance:GetFullNamestringReturns a string describing the instance's ancestry.
Instance:GetStyledVariantReturns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
Instance:GetStyledPropertyChangedSignalRBXScriptSignalReturns an event that fires when the given style property changes on the instance.
Instance:GetTagsArrayGets an array of all tags applied to the instance.
Instance:HasTagbooleanCheck whether the instance has a given tag.
Instance:IsAncestorOfbooleanReturns true if an Instance is an ancestor of the given descendant.
Instance:IsDescendantOfbooleanReturns true if an Instance is a descendant of the given ancestor.
Instance:isDescendantOfboolean
Instance:IsPropertyModifiedbooleanReturns true if the value stored in the specified property is not equal to the code-instantiated default.
Instance:QueryDescendantsInstancesReturns 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:WaitForChildInstanceReturns 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

NameType / ReturnsDescription
Object:GetPropertyChangedSignalRBXScriptSignalGet an event that fires when a given property of the object changes.
Object:IsAbooleanReturns true if an object's class matches or inherits from a given class.
Object:isAboolean

MaterialService:GetBaseMaterialOverride

Get the override MaterialVariant name of specified Material type.

Parameters

NameTypeDefaultDescription
materialMaterialMaterial type to be fetched.

Returns

TypeDescription
stringMaterialVariant name currently set as override.
FieldValue
securityNone
thread safetyUnsafe
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

NameTypeDefaultDescription
materialMaterialBaseMaterial of MaterialVariant.
namestringName of MaterialVariant.

Returns

TypeDescription
MaterialVariantA MaterialVariant instance that matches parameters.
FieldValue
securityNone
thread safetyUnsafe
capabilities["Material"]

MaterialService:SetBaseMaterialOverride

Set a MaterialVariant name that overrides a built-in material.

Parameters

NameTypeDefaultDescription
materialMaterialThe Material type to be changed.
namestringName of the MaterialVariant object.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe
capabilities["Material"]

Events

Inherited from Instance

NameType / ReturnsDescription
Instance.AncestryChangedFires when the Instance.Parent property of this object or one of its ancestors is changed.
Instance.AttributeChangedFires whenever an attribute is changed on the Instance.
Instance.ChildAddedFires after an object is parented to this Instance.
Instance.childAdded
Instance.ChildRemovedFires after a child is removed from this Instance.
Instance.DescendantAddedFires after a descendant is added to the Instance.
Instance.DescendantRemovingFires immediately before a descendant of the Instance is removed.
Instance.DestroyingFires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy().
Instance.StyledPropertiesChangedFires whenever any style property is changed on the instance, including when a property is set to nil.

Inherited from Object

NameType / ReturnsDescription
Object.ChangedFires immediately after a property of the object changes, with some limitations.