/Godot 3.1


Inherits: Control < CanvasItem < Node < Object

Category: Core

Brief Description

Displays plain text in a line or wrapped inside a rectangle. For formatted text, use RichTextLabel.


Align align
bool autowrap
bool clip_text
int lines_skipped
int max_lines_visible
float percent_visible
String text
bool uppercase
VAlign valign
int visible_characters


int get_line_count ( ) const
int get_line_height ( ) const
int get_total_character_count ( ) const
int get_visible_line_count ( ) const

Theme Properties

Font font
Color font_color
Color font_color_shadow
Color font_outline_modulate
int line_spacing
StyleBox normal
int shadow_as_outline
int shadow_offset_x
int shadow_offset_y


enum Align:

  • ALIGN_LEFT = 0 — Align rows to the left (default).
  • ALIGN_CENTER = 1 — Align rows centered.
  • ALIGN_RIGHT = 2 — Align rows to the right (default).
  • ALIGN_FILL = 3 — Expand row whitespaces to fit the width.

enum VAlign:

  • VALIGN_TOP = 0 — Align the whole text to the top.
  • VALIGN_CENTER = 1 — Align the whole text to the center.
  • VALIGN_BOTTOM = 2 — Align the whole text to the bottom.
  • VALIGN_FILL = 3 — Align the whole text by spreading the rows.


Label displays plain text on the screen. It gives you control over the horizontal and vertical alignment, and can wrap the text inside the node’s bounding rectangle. It doesn’t support bold, italics or other formatting. For that, use RichTextLabel instead.

Note that contrarily to most other Controls, Label’s Control.mouse_filter defaults to MOUSE_FILTER_IGNORE (i.e. it doesn’t react to mouse input events). This implies that a label won’t display any configured Control.hint_tooltip, unless you change its mouse filter.

Property Descriptions

Align align

Setter set_align(value)
Getter get_align()

Controls the text’s horizontal align. Supports left, center, right, and fill, or justify. Set it to one of the ALIGN_* constants.

bool autowrap

Setter set_autowrap(value)
Getter has_autowrap()

If true, wraps the text inside the node’s bounding rectangle. If you resize the node, it will change its height automatically to show all the text. Default: false.

bool clip_text

Setter set_clip_text(value)
Getter is_clipping_text()

If true, the Label only shows the text that fits inside its bounding rectangle. It also lets you scale the node down freely.

int lines_skipped

Setter set_lines_skipped(value)
Getter get_lines_skipped()

The node ignores the first lines_skipped lines before it starts to display text.

int max_lines_visible

Setter set_max_lines_visible(value)
Getter get_max_lines_visible()

Limits the lines of text the node shows on screen.

float percent_visible

Setter set_percent_visible(value)
Getter get_percent_visible()

Limits the count of visible characters. If you set percent_visible to 50, only up to half of the text’s characters will display on screen. Useful to animate the text in a dialog box.

String text

Setter set_text(value)
Getter get_text()

The text to display on screen.

bool uppercase

Setter set_uppercase(value)
Getter is_uppercase()

If true, all the text displays as UPPERCASE.

VAlign valign

Setter set_valign(value)
Getter get_valign()

Controls the text’s vertical align. Supports top, center, bottom, and fill. Set it to one of the VALIGN_* constants.

int visible_characters

Setter set_visible_characters(value)
Getter get_visible_characters()

Restricts the number of characters to display. Set to -1 to disable.

Method Descriptions

int get_line_count ( ) const

Returns the amount of lines of text the Label has.

int get_line_height ( ) const

Returns the font size in pixels.

int get_total_character_count ( ) const

Returns the total number of printable characters in the text (excluding spaces and newlines).

int get_visible_line_count ( ) const

Returns the number of lines shown. Useful if the Label ‘s height cannot currently display all lines.

© 2014–2019 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.