PcoWSkbVqDnWTu_dm2ix
Collapse Sidebar

Decal

Show deprecated

Decal

Show deprecated

The Decal object is an object which applies an image to a face of a BasePart.

How does a Decal work?

A Decal will apply an image to the BasePart it is parented to. The surface this image is applied to is dependent on the FaceInstance/Face property. The size of the decal is dependent on the size of the face, meaning the size and aspect ratio of a decal can be changed by changing its parent’s BasePart/Size.

The image a Decal applies is determined by its Decal/Texture property. Images can be uploaded to Roblox provided they adhere to the community guidelines. Information on how to upload images can be found Articles/How to upload a Decal|here.

Alternatives to Decals

Although Decals have a wide variety of applications, in some cases developers may wish to pick one of the following classes instead.

  • For repeated tiled textures, the Texture object should be used
  • To apply GUI elements, the SurfaceGui object should be used
  • If the effect of lighting on the image needs to be altered, the SurfaceGui object should be used

Properties

Color3

Color3

The DataType/Color3 tint of the Decal.

float

LocalTransparencyModifier

[Hidden] [NotReplicated]

Acts as a multiplier for the Decal’s Decal/Transparency property. The effects are only visible to the local player.

float

Shiny

[NotReplicated] [Deprecated]
float

Specular

[NotReplicated] [Deprecated]
Content

Texture

The ContentId of the image to be applied by the Decal.

float

Transparency

Determines the transparency of the Decal with 0 being completely opaque and 1 completely transparent.

int

ZIndex

Determines the rendering order when multiple Decals are assigned the same face

Inherited from FaceInstance: Show Hide

NormalId

Face

Sets what face of the brick the object appears on.

Inherited from Instance: Show Hide

bool

Archivable

Determines if an Instance can be cloned using /Instance/Clone or saved to file.

string

ClassName

[ReadOnly] [NotReplicated]

A read-only string representing the class this Instance belongs to

int

DataCost

[Hidden] [ReadOnly] [NotReplicated] [Deprecated]

The cost of saving the instance using data persistence.

string

Name

A non-unique identifier of the Instance

Instance

Parent

[NotReplicated]

Determines the hierarchical parent of the Instance

bool

RobloxLocked

[Hidden]

A deprecated property that used to protect CoreGui objects

bool

archivable

[Hidden] [NotReplicated] [Deprecated]
string

className

[ReadOnly] [NotReplicated] [Deprecated]

Functions

Inherited from Instance: Show Hide

void

ClearAllChildren ( )

This function destroys all of an Instance’s children.

Instance

Clone ( )

Create a copy of an object and all its descendants, ignoring objects that are not Instance/Archivable|Archivable

void

Destroy ( )

Sets the Instance/Parent property to nil, locks the Instance/Parent property, disconnects all connections and calls Destroy on all children.

Instance

FindFirstAncestor ( string name )

Returns the first ancestor of the Instance whose Instance/Name is equal to the given name.

Instance

FindFirstAncestorOfClass ( string className )

Returns the first ancestor of the Instance whose Instance/ClassName is equal to the given className.

Instance

FindFirstAncestorWhichIsA ( string className )

Returns the first ancestor of the Instance for whom Instance/IsA returns true for the given className.

Instance

FindFirstChild ( string name , bool recursive )

Returns the first child of the Instance found with the given name.

Instance

FindFirstChildOfClass ( string className )

Returns the first child of the Instance whose Instance/ClassName|ClassName is equal to the given className.

Instance

FindFirstChildWhichIsA ( string className , bool recursive )

Returns the first child of the Instance for whom Instance/IsA returns true for the given className.

Instance

FindFirstDescendant ( string name )

Actor

GetActor ( )

Variant

GetAttribute ( string attribute )

Returns the attribute which has been assigned to the given name

RBXScriptSignal

GetAttributeChangedSignal ( string attribute )

Returns an event that fires when the given attribute changes

Dictionary

GetAttributes ( )

Returns a dictionary of string → variant pairs for each of the Instance|Instance’s attributes

Objects

GetChildren ( )

Returns an array containing all of the Instance’s children.

string

GetDebugId ( int scopeLength )

[NotBrowsable]

Returns a coded string of the Instances DebugId used internally by Roblox.

Array

GetDescendants ( )

[CustomLuaState]

Returns an array containing all of the descendants of the instance

string

GetFullName ( )

Returns a string describing the Instance’s ancestry.

RBXScriptSignal

GetPropertyChangedSignal ( string property )

Get an event that fires when a given property of an object changes.

bool

IsA ( string className )

[CustomLuaState]

Returns true if an Instance’s class matches or inherits from a given class

bool

IsAncestorOf ( Instance descendant )

Returns true if an Instance is an ancestor of the given descendant.

bool

IsDescendantOf ( Instance ancestor )

Returns true if an Instance is a descendant of the given ancestor.

void

Remove ( )

[Deprecated]

Sets the object’s Parent to nil, and does the same for all its descendants.

void

SetAttribute ( string attribute , Variant value )

Sets the attribute with the given name to the given value

Instance

WaitForChild ( string childName , double timeOut )

[CustomLuaState] [CanYield]

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.

Objects

children ( )

[Deprecated]

Returns an array of the object’s children.

Instance

clone ( )

[Deprecated]
void

destroy ( )

[Deprecated]
Instance

findFirstChild ( string name , bool recursive )

[Deprecated]
Objects

getChildren ( )

[Deprecated]
bool

isA ( string className )

[Deprecated] [CustomLuaState]
bool

isDescendantOf ( Instance ancestor )

[Deprecated]
void

remove ( )

[Deprecated]

Events

Inherited from Instance: Show Hide

RBXScriptSignal

AncestryChanged ( Instance child , Instance parent )

Fires when the Instance/Parent property of the object or one of its ancestors is changed.

RBXScriptSignal

AttributeChanged ( string attribute )

Fires whenever an attribute is changed on the Instance

RBXScriptSignal

Changed ( string property )

Fired immediately after a property of an object changes.

RBXScriptSignal

ChildAdded ( Instance child )

Fires when an object is parented to this Instance.

RBXScriptSignal

ChildRemoved ( Instance child )

Fires when a child is removed from this Instance.

RBXScriptSignal

DescendantAdded ( Instance descendant )

Fires when a descendant is added to the Instance

RBXScriptSignal

DescendantRemoving ( Instance descendant )

Fires immediately before a descendant of the Instance is removed.

RBXScriptSignal

childAdded ( Instance child )

[Deprecated]

Code Samples


Changing Decal Texture

The following code will create a Part on the ground with a Decal applied to its top face. When something hits the part, such as when a player walks over it, the texture applied to the decal will change and a sound will play.

-- create part 
local part = Instance.new("Part")
part.Size = Vector3.new(5, 1, 5)
part.Position = Vector3.new(0, 0.5, 0)
part.Anchored = true
part.TopSurface = Enum.SurfaceType.Smooth
part.BrickColor = BrickColor.new("Toothpaste")

-- create decal
local decal = Instance.new("Decal", part)
decal.Face = Enum.NormalId.Top

-- create sound
local sound = Instance.new("Sound", part)
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" --ooff

-- define faces
local happyFace = "http://www.roblox.com/asset/?id=26424652"
local sadFace = "http://www.roblox.com/asset/?id=147144198"

decal.Texture = happyFace

-- touched event 
local cooldown = false
part.Touched:Connect(function(hit)
	if not cooldown then
		if hit and hit.Parent then
			cooldown = true
			sound:Play()
			decal.Texture = sadFace
			wait(1)
			decal.Texture = happyFace
			wait(0.2)
			cooldown = false
		end
	end
end)

-- add to workspace
part.Parent = workspace