Masque

API / SkinData

SkinData is a definition table that tells Masque how to skin a button. This table contains information about the skin and a list of layers and their associated skin settings. The format of the skin data table is shown in the example below.

Example

{
	-- Skin Information
	Author = "Name",
	Version = "1.0",
	Shape = "Square",
	Masque_Version = 40200,

	-- Layer Settings
	Backdrop = {...},
	Icon = {...},
	Flash = {...},
	Cooldown = {...},
	Pushed = {...},
	Normal = {...},
	Disabled = {...},
	Checked = {...},
	Border = {...},
	AutoCastable = {...},
	Highlight = {...},
	Gloss = {...},
	HotKey = {...},
	Count = {...},
	Name = {...},
	Duration = {...},
	AutoCast = {...},
}

Note that the layer is the string name of the layer and that the value of the layer is a table containing all of that layer's settings, or attributes. The attributes themselves vary in type, so please refer to the attribute information.


Layers

The following is a list of layers and the attributes available to them. Note that the layers are listed in order, from bottom to top, of how they're displayed. To see an example of how the attributes are applied to a layer, refer to the attributes section.


Backdrop

A custom texture that is displayed behind all other layers.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, Color, OffsetX, OffsetY, Hide


Icon

The spell or skill icon for the button.

Type
Texture
Attributes
Width, Height, TexCoords, OffsetX, OffsetY


Flash

The texture that "flashes" when an ability is in an auto-attack state.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, Color, OffsetX, OffsetY, Hide


Cooldown

The cool down animation frame for the button.

Type
Animation Frame
Attributes
Width, Height, OffsetX, OffsetY, Hide


Pushed

The texture shown when the button is pressed.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, Color, OffsetX, OffsetY, Hide


Normal

The default state texture. Note that this is not the Border layer, despite the fact that it typically appears as a "border" around the icon.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, Random, Textures, BlendMode, EmptyTexture, EmptyCoords, Color, OffsetX, OffsetY, Hide


Disabled

The texture shown when a button is disabled

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, Color, OffsetX, OffsetY, Hide

Note: The game doesn't seem to use this state anymore. Instead, it desaturates the icon. This makes it safe to hide this layer and in most cases, hiding it is recommended.


Checked

The texture shown when a button is in the "checked" state.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, Color, OffsetX, OffsetY, Hide


Border

The border indicator texture that is shown when the button slot contains an equipped item or debuff.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, OffsetX, OffsetY, Hide


AutoCastable

The texture that's shown when and ability can be toggled on and off.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, Color, OffsetX, OffsetY, Hide


Highlight

The texture shown when the cursor is over a button.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, Color, OffsetX, OffsetY, Hide


Gloss

A custom texture that gives the button a glossy look.

Type
Texture
Attributes
Width, Height, Texture, TexCoords, BlendMode, Color, OffsetX, OffsetY, Hide


HotKey

The key binding text.

Type
Text
Attributes
Width, Height, Font, FontSize, JustifyH, JustifyV, OffsetX, OffsetY


Count

The item count text.

Type
Text
Attributes
Width, Height, Color, Font, FontSize, JustifyH, JustifyV, OffsetX, OffsetY


Name

The macro name text.

Type
Text
Attributes
Width, Height, Color, Font, FontSize, JustifyH, JustifyV, OffsetX, OffsetY


Duration

The duration text displayed on buff and debuff buttons.

Type
Text
Attributes
Width, Height, Color, Font, FontSize, JustifyH, JustifyV, OffsetX, OffsetY


AutoCast

The animation frame that's shown when an automatic ability is enabled.

Type
Animation Frame
Attributes
Width, Height, OffsetX, OffsetY, Hide


Attributes

The attributes available to a layer primarily depend on the layer's type. In some cases, however, a layer may not have access to a specific attribute or it may have additional attributes. The following is a list of each attribute and a brief description.


Width

The number width of the layer.

Example

{
	Layer = {
	    Width = 36,
	},
}


Height

The number height of the layer.

Example

{
	Layer = {
	    Height = 36,
	},
}


Texture

The string path to the texture for the layer.

Example

{
	Layer = {
	    Texture = [[Path\To\Texture]],
	},
}


TexCoords

An indexed table containing a set of texture coordinates.

Example

{
	Layer = {
	    TexCoords = { 0, 1, 0, 1 },
	},
}


Random

A boolean that tells Masque to use random textures. This attribute is only available to the Normal layer.

Example

{
	Normal = {
	    Random = true,
	},
}


Textures

An indexed table containing a list of textures to use if Random is set to true. This must contain at least 2 entries. This attribute is only available to the Normal layer.

Example

{
	Normal = {
	    Textures = {
	       [[Path\To\Texture1]],
	       [[Path\To\Texture2]],
	       [[Path\To\Texture3]],
		},
	},
}


EmptyTexture

The string path to the texture to be used when a button is empty. This attribute is only available to the Normal layer.

Example

{
	Normal = {
	    EmptyTexture = [[Path\To\Texture]],
	},
}


EmptyCoords

An indexed table containing a set of texture coordinates for the EmptyTexture. This attribute is only available to the Normal layer.

Example

{
	Normal = {
	    EmptyCoords = { 0, 1, 0, 1 },
	},
}


BlendMode

The string blend mode of the of the layer.

Values
ADD, ALPHAKEY, BLEND, DISABLE, MOD

Example

{
	Layer = {
	    BlendMode = "ADD",
	},
}


Color

An indexed table containing the red, green, blue and alpha values for the layer, in that order.

Example

{
	Layer = {
	    Color = { 1, 0.25, 0.5, 1 },
	},
}


OffsetX

The number of pixels to offset the layer horizontally.

Example

{
	Layer = {
	    OffsetX = -2,
	},
}


OffsetY

The number of pixels to offset the layer vertically.

Example

{
	Layer = {
	    OffsetY = -2,
	},
}


Font

The string path to the font to be used for the skin. This attribute is only available to text layers.

Example

{
	Layer = {
	    Font = [[Path\To\Font]],
	},
}


FontSize

The number size of the font. This attribute is only available to text layers.

Example

{
	Layer = {
	    FontSize = 12,
	},
}


JustifyH

The string horizontal justification of the text within the layer. This attribute is only available to text layers.

Values
LEFT, CENTER, RIGHT

Example

{
	Layer = {
	    JustifyH = "CENTER",
	},
}


JustifyV

The string vertical justification of the text within the layer. This attribute is only available to text layers.

Values
BOTTOM, MIDDLE, TOP

Example

{
	Layer = {
	    JustifyV = "TOP",
	},
}


Hide

A boolean that tells Masque to hide this layer if set to true. If a layer is "hidden", none of the other attributes need to be specified for the layer.

Example

{
	Layer = {
	    Hide = true,
	},
}