Reference API Roblox

Engine API

Website

Related

Reference API Roblox

TextLabel

A 2D user interface element that displays non-interactive text.

Member index 30

HistoryMember
553ContentText: string
553FontFace: Font
553FontSize: FontSize
553LineHeight: float
553MaxVisibleGraphemes: int
629OpenTypeFeatures: string
629OpenTypeFeaturesError: string
553RichText: bool
553Text: string
553TextBounds: Vector2
553TextColor3: Color3
581TextDirection: TextDirection
553TextFits: bool
553TextScaled: bool
553TextSize: float
553TextStrokeColor3: Color3
553TextStrokeTransparency: float
553TextTransparency: float
553TextTruncate: TextTruncate
553TextWrap: bool
553TextWrapped: bool
553TextXAlignment: TextXAlignment
553TextYAlignment: TextYAlignment
573SetTextFromInput(text: string): null
inherited from GuiObject
553Active: bool
553AnchorPoint: Vector2
553AutomaticSize: AutomaticSize
553BackgroundColor3: Color3
553BackgroundTransparency: float
553BorderColor3: Color3
553BorderMode: BorderMode
553BorderSizePixel: int
553ClipsDescendants: bool
553Draggable: bool
588GuiState: GuiState
589Interactable: bool
553LayoutOrder: int
553NextSelectionDown: GuiObject
553NextSelectionLeft: GuiObject
553NextSelectionRight: GuiObject
553NextSelectionUp: GuiObject
553Position: UDim2
553Rotation: float
553Selectable: bool
553SelectionImageObject: GuiObject
553SelectionOrder: int
553Size: UDim2
553SizeConstraint: SizeConstraint
553Visible: bool
553ZIndex: int
462TweenPosition(endPosition: UDim2, easingDirection: EasingDirection = Out, easingStyle: EasingStyle = Quad, time: float = 1, override: bool = false, callback: Function = nil): bool
462TweenSize(endSize: UDim2, easingDirection: EasingDirection = Out, easingStyle: EasingStyle = Quad, time: float = 1, override: bool = false, callback: Function = nil): bool
462TweenSizeAndPosition(endSize: UDim2, endPosition: UDim2, easingDirection: EasingDirection = Out, easingStyle: EasingStyle = Quad, time: float = 1, override: bool = false, callback: Function = nil): bool
462DragBegin(initialPosition: UDim2)
462DragStopped(x: int, y: int)
483InputBegan(input: InputObject)
483InputChanged(input: InputObject)
483InputEnded(input: InputObject)
462MouseEnter(x: int, y: int)
462MouseLeave(x: int, y: int)
462MouseMoved(x: int, y: int)
462MouseWheelBackward(x: int, y: int)
462MouseWheelForward(x: int, y: int)
462SelectionGained()
462SelectionLost()
462TouchLongPress(touchPositions: Array, state: UserInputState)
462TouchPan(touchPositions: Array, totalTranslation: Vector2, velocity: Vector2, state: UserInputState)
462TouchPinch(touchPositions: Array, scale: float, velocity: float, state: UserInputState)
462TouchRotate(touchPositions: Array, rotation: float, velocity: float, state: UserInputState)
462TouchSwipe(swipeDirection: SwipeDirection, numberOfTouches: int)
462TouchTap(touchPositions: Array)
inherited from GuiBase2d
553AbsolutePosition: Vector2
553AbsoluteRotation: float
553AbsoluteSize: Vector2
553AutoLocalize: bool
553RootLocalizationTable: LocalizationTable
553SelectionBehaviorDown: SelectionBehavior
553SelectionBehaviorLeft: SelectionBehavior
553SelectionBehaviorRight: SelectionBehavior
553SelectionBehaviorUp: SelectionBehavior
553SelectionGroup: bool
525SelectionChanged(amISelected: bool, previousSelection: GuiObject, newSelection: GuiObject)
inherited from Instance
553Archivable: bool
635Capabilities: SecurityCapabilities
553Name: string
553Parent: Instance
635Sandboxed: bool
616UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
486GetDescendants(): Array
486GetFullName(): string
641GetStyled(name: string): Variant
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
580IsPropertyModified(name: string): bool
573Remove(): null
576RemoveTag(tag: string): null
580ResetPropertyToDefault(name: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
648children(): Instances
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
648getChildren(): Instances
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
553childAdded(child: Instance)
inherited from Object
647ClassName: string
647className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
650isA(className: string): bool
647Changed(property: string)

Removed member index 2

HistoryMember
466Content: string

Description

A TextLabel renders a rectangle, like a Frame, with styled text. The rectangle can be used to define text boundaries, text scaling (TextLabel.TextScaled) and wrapping (TextLabel.TextWrapped, TextLabel.TextXAlignment, TextLabel.TextYAlignment).

This class contains properties that control the display of the text, such as TextLabel.Font and TextLabel.TextColor3. All text rendered by a single text label will have the same visual properties; multiple TextLabel objects must be used in order to render multiple styles of text. To display only text and hide the rectangle, set GuiObject.BackgroundTransparency to 1.

TextService:GetTextSize() can be used to get the size (bounds) of text that would be rendered in a TextLabel given a font size, font, and frame size.

A UITextSizeConstraint object can be used to constrain the size of text with TextLabel.TextScaled enabled. It is recommended that the size of text is no lower than 9, otherwise it may not be visible to most users.

History 114

Members 30

ContentText

TypeDefault
stringLabel

This property provides a copy of TextLabel.Text that contains exactly what is being rendered by the TextLabel. This is useful for eliminating style tags used for rich text.

Example

When TextLabel.RichText is enabled, the TextLabel.ContentText property shows the text as it appears to the player.

RichTextTextContentText
false<b>Hello,<br/> world!</b><b>Hello,<br/> world!</b>
true<b>Hello,<br/> world!</b>Hello,
world!
This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 2

Tags: [ReadOnly, NotReplicated]

FontFace

TypeDefault
Font

The FontFace property is similar to the Font property, but allows setting fonts that don't exist in the Font enum.

This property is kept in sync with the TextLabel.Font property. When setting FontFace, the Font is set to the corresponding enum value, or to Font.Unknown if there are no matches.

History 2

FontSize

TypeDefault
FontSizeSize8

This property determines the height in offsets of one line of text.

This property is deprecated. It exists only for backward compatibility, and should not be used for new work. TextSize should be used instead.
This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated, Deprecated]

LineHeight

TypeDefault
float1

Controls the height of lines, as a multiple of the font's em square size, by scaling the spacing between lines of text in the TextLabel. Valid values range from 1.0 to 3.0, defaulting to 1.0.

History 4

MaxVisibleGraphemes

TypeDefault
int-1

This property controls the maximum number of graphemes (or units of text) that are shown on the TextLabel. It is primarily provided as an easy way to create a "typewriter effect" where the characters appear one at a time.

Changing the property does not change the position or size of the visible graphemes - the layout will be calculated as if all graphemes are visible.

Setting the property to -1 disables the limit and shows the entirety of the TextLabel.Text.

History 3

OpenTypeFeatures

TypeDefault
string

History 1

OpenTypeFeaturesError

TypeDefault
string
This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 1

Tags: [ReadOnly, NotReplicated]

RichText

TypeDefault
boolfalse

This property determines whether the TextLabel renders the TextLabel.Text string using rich text formatting. Rich text uses simple markup tags to style sections of the string in bold, italics, specific colors, and more.

To use rich text, simply include formatting tags in the TextLabel.Text string.

History 4

SetTextFromInput

Parameters (1)
textstring
Returns (1)
null

History 3

Text

TypeDefault
stringLabel

The Text property determines the content rendered by the UI element. The visual properties of the string rendered to the screen is determined by TextLabel.TextColor3, TextLabel.TextTransparency, TextLabel.TextSize, TextLabel.Font, TextLabel.TextScaled, TextLabel.TextWrapped, TextLabel.TextXAlignment and TextLabel.TextYAlignment.

It is possible to render emoji (for example, 😃) and other symbols. These special symbols aren't affected by the TextLabel.TextColor3 property. These can be pasted into Script and LocalScript objects, as well as the field within the Properties window.

This property may contain newline characters, however, it is not possible to type newline characters within the Properties window. Similarly, this property may contain a tab character, but it will render as a space instead.

History 4

  • 553 Change Default of Text from to Label
  • 486 Change ThreadSafety of Text from ReadOnly to ReadSafe
  • 462 Change ThreadSafety of Text from to ReadOnly
  • 47 Add Text

TextBounds

TypeDefault
Vector20, 0

The read-only property TextBounds reflects the absolute size of rendered text in offsets. In other words, if you were to try to fit text into a rectangle, this property would reflect the minimum dimensions of the rectangle you would need in order to fit the text.

Using TextService:GetTextSize(), you can predict what TextBounds will be on a TextLabel given a string, TextLabel.Font, TextLabel.TextSize and frame size.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

TextColor3

TypeDefault
Color30.105882, 0.164706, 0.207843

This property determines the color of all the text rendered by a GUI element. This property along with TextLabel.Font, TextLabel.TextSize and TextLabel.TextTransparency will determine the visual properties of text. Text is rendered after the text stroke (TextLabel.TextStrokeColor3).

It's important that text is easily read by players! Be sure to choose colors with little-to-no saturation, like white, grey, or black. Make sure the color of your text is contrasted by the TextLabel.BackgroundColor3 of the GUI element. If the element has a transparent background, try applying a black TextLabel.TextStrokeColor3 to help contrast the text with the 3D world behind it.

History 4

TextDirection

TypeDefault
TextDirectionAuto

History 1

TextFits

TypeDefault
boolfalse

The TextFits is a read-only property that is false if TextLabel.Text content does not fit within the GuiBase2d.AbsoluteSize when rendered. If TextLabel.TextWrapped is true, a false value indicates that some text is truncated and not rendering. Otherwise, it indicates if the line of text is rendering outside the UI element's rectangle. If TextLabel.TextScaled is enabled, this property will be disabled when text must be scaled down in order to fit.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

TextScaled

TypeDefault
boolfalse

Rather than using TextScaled, we recommend you consider using AutomaticSize, a new method to dynamically size UI that will give you the best visual result possible.

The TextScaled property determines whether text is scaled so that it fills the entire UI element's space. When this is enabled, TextLabel.TextSize is ignored and TextLabel.TextWrapped is automatically enabled. This property is useful for text-rendering UI elements within BillboardGuis.

When this property is used for screen-space UI, it may be desirable to use a UITextSizeConstraint to restrict the range of possible text sizes.

TextScaled and AutomaticSize

It's recommended that developers avoid usage of TextScaled and adjust UI to take advantage of the AutomaticSize property instead. Here are the core differences between the two properties:

  • TextScaled scales the content (text) to accommodate the UI. Without careful consideration, some text may become unreadable if scaled too small.
  • AutomaticSize resizes the UI to accommodate content.

With AutomaticSize, you're able to adjust your UI to accommodate the content (text) while maintaining a consistent font size. For more information on how to use automatic sizing, see the UI Automatic Size article.

We suggest that you don't apply both TextScaled and AutomaticSize on the same UI object. If you apply both properties:

  • AutomaticSize determines the maximum amount of available space that a GuiObject can use (in this case, text)
  • TextScaled uses the available space determined by AutomaticSize, to scale the font size to fit the available space, which will expand up to the maximum font size (100), if there are no size constraints
  • The end result will be: text goes to 100 font size and the UI object will expand to fit that text

Using both AutomaticSize and TextScaled at the same time can result in significant scaling differences than when AutomaticSize is off.

History 4

TextSize

TypeDefault
float8

The TextSize property determines the height in offsets of one line of rendered text. The unit is in offsets, not points (which is used in most document editing programs). It's worth noting that the "Legacy" font's line height behaves differently, and won't match this property exactly.

This property and TextLabel.TextColor3, TextLabel.TextTransparency, TextLabel.TextStrokeColor3 and TextLabel.TextStrokeTransparency each influence the way text is rendered.

This property supersedes TextLabel.FontSize since it is a number and not an enum. Internally, Roblox uses several sets of pre-rendered character images for each size of each font. It chooses the closest size to TextSize, then scales that set of character images to render text. Before the introduction of this property, you could only pick from the pre-rendered sizes, which were listed by the FontSize enum.

History 4

TextStrokeColor3

TypeDefault
Color30, 0, 0

The TextStrokeColor3 property sets the color of the stroke, or outline, of rendered text. This property and TextLabel.TextStrokeTransparency determine the visual properties of the text stroke.

Text stroke is rendered before normal text and is simply 4 renderings of the same text in +/- 1 pixel offsets in each direction. Text stroke rendering works independently and identically to TextLabel.TextColor3 and TextLabel.TextTransparency.

History 4

TextStrokeTransparency

TypeDefault
float1

The TextStrokeTransparency property sets the transparency of the stroke, or outline, of rendered text. This property and TextLabel.TextStrokeColor3 determine the visual properties of the text stroke.

Text stroke is rendered before normal text and is simply 4 renderings of the same text in +/- 1 pixel offsets in each direction. Text stroke rendering works independently and identically to TextLabel.TextColor3 and TextLabel.TextTransparency. Since text stroke is simply multiple renderings of the same transparency, this property is essentially multiplicative on itself four times over (e.g. a TextStrokeTransparency of 0.5 appears about the same as TextTransparency of 0.0625, or 0.5^4). Therefore, it's recommended to set TextStrokeTransparency to a value in the range of 0.75 to 1 for more a more subtle effect.

History 4

TextTransparency

TypeDefault
float0

The TextColor3 property determines the transparency of all the text rendered by a UI element. This property along with TextLabel.Font, TextLabel.TextSize and TextLabel.TextColor3 will determine the visual properties of text. Text is rendered after the text stroke (TextLabel.TextStrokeTransparency).

Fading text in using a numeric for-loop is a fantastic way to draw a player's attention to text appearing on screen.

-- Count backwards from 1 to 0, decrementing by 0.1
for i = 1, 0, -0.1 do
   textLabel.TextTransparency = i
   task.wait(0.1)
end

History 4

TextTruncate

TypeDefault
TextTruncateNone

Controls the truncation of the text displayed in this TextLabel.

History 4

TextWrap

TypeDefault
boolfalse

This property determines if text wraps to multiple lines within the GUI element space, truncating excess text.

This property is deprecated. It exists only for backward compatibility, and should not be used for new work. TextWrapped should be used instead.
This property is not replicated. Its interface does not cross the network boundary.

History 6

Tags: [NotReplicated, Deprecated]

TextWrapped

TypeDefault
boolfalse

When enabled, this property will render text on multiple lines within a GUI element's space so that TextLabel.TextBounds will never exceed the GuiBase2d.AbsoluteSize of the UI element.

This is achieved by breaking long lines of text into multiple lines. Line breaks will prefer whitespace; should a long unbroken word exceed the width of the element, that word will be broken into multiple lines.

If further line breaks would cause the vertical height of the text (the Y component of TextLabel.TextBounds) to exceed the vertical height of the element (the Y component of GuiBase2d.AbsoluteSize), then that line will not be rendered at all.

History 4

TextXAlignment

TypeDefault
TextXAlignmentCenter

TextXAlignment determines the horizontal alignment (X-axis) of text rendered within a UI element's space. It functions similarly to the CSS text-align property, with left, right and center values (there is no justify option). For Left and Right, text is rendered such that the left/right text bounds just touch the edge of the UI element rectangle. For Center, each line of text is centered on the very center of the UI element rectangle.

This property is used in conjunction with TextLabel.TextYAlignment to fully determine text alignment on both axes. This property won't affect the read-only properties TextLabel.TextBounds and TextLabel.TextFits.

History 4

TextYAlignment

TypeDefault
TextYAlignmentCenter

TextYAlignment determines the vertical alignment (Y-axis) of text rendered within a UI element's space. For Top and Bottom, text is rendered such that the top/bottom text bounds just touch the edge of the UI element rectangle. For Center, text is rendered such that there is an equal space from the top bounds of the text to the top of the element and the bottom bounds of the text to the bottom of the element.

This property is used in conjunction with TextLabel.TextXAlignment to fully determine text alignment on both axes. This property won't affect the read-only properties TextLabel.TextBounds and TextLabel.TextFits.

History 4

Removed members 2

Content

TypeDefault
string
This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 2

Tags: [ReadOnly, NotReplicated]

Settings