Table of Contents

Class RichTextLabel

A control for displaying text that can contain different font styles, images, and basic formatting.

Inheritance
RichTextLabel

Remarks

A control for displaying text that can contain custom fonts, images, and basic formatting. RichTextLabel manages these as an internal tag stack. It also adapts itself to given width/heights.

Note: newline, RichTextLabel.push_paragraph, "\n", "\r\n", p tag, and alignment tags start a new paragraph. Each paragraph is processed independently, in its own BiDi context. If you want to force line wrapping within paragraph, any other line breaking character can be used, for example, Form Feed (U+000C), Next Line (U+0085), Line Separator (U+2028).

Note: Assignments to text clear the tag stack and reconstruct it from the property's contents. Any edits made to text will erase previous edits made from other manual sources such as RichTextLabel.append_text and the push_* / pop methods.

Note: RichTextLabel doesn't support entangled BBCode tags. For example, instead of using [b]bold[i]bold italic[/b]italic[/i], use [b]bold[i]bold italic[/i][/b][i]italic[/i].

Note: push_*/pop_* functions won't affect BBCode.

Note: Unlike Label, RichTextLabel doesn't have a property to horizontally align text to the center. Instead, enable bbcode_enabled and surround the text in a [center] tag as follows: [center]Example[/center]. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the fit_content property.

See Also

Properties

autowrap_mode

If set to something other than TextServer.AUTOWRAP_OFF, the text gets wrapped inside the node's bounding rectangle. To see how each mode behaves, see AutowrapMode.

var autowrap_mode : int = 3

Property Value

int

Remarks

  • void set_autowrap_mode(int value)
  • int get_autowrap_mode

bbcode_enabled

If true, the label uses BBCode formatting.

Note: This only affects the contents of text, not the tag stack.

var bbcode_enabled : bool = false

Property Value

bool

Remarks

  • void set_use_bbcode(bool value)
  • bool is_using_bbcode

context_menu_enabled

If true, a right-click displays the context menu.

var context_menu_enabled : bool = false

Property Value

bool

Remarks

  • void set_context_menu_enabled(bool value)
  • bool is_context_menu_enabled

custom_effects

The currently installed custom effects. This is an array of RichTextEffects.

To add a custom effect, it's more convenient to use RichTextLabel.install_effect.

var custom_effects : Array = []

Property Value

Array

Remarks

deselect_on_focus_loss_enabled

If true, the selected text will be deselected when focus is lost.

var deselect_on_focus_loss_enabled : bool = true

Property Value

bool

Remarks

  • void set_deselect_on_focus_loss_enabled(bool value)
  • bool is_deselect_on_focus_loss_enabled

drag_and_drop_selection_enabled

If true, allow drag and drop of selected text.

var drag_and_drop_selection_enabled : bool = true

Property Value

bool

Remarks

  • void set_drag_and_drop_selection_enabled(bool value)
  • bool is_drag_and_drop_selection_enabled

fit_content

If true, the label's minimum size will be automatically updated to fit its content, matching the behavior of Label.

var fit_content : bool = false

Property Value

bool

Remarks

  • void set_fit_content(bool value)
  • bool is_fit_content_enabled

hint_underlined

If true, the label underlines hint tags such as [hint=description]{text}[/hint].

var hint_underlined : bool = true

Property Value

bool

Remarks

  • void set_hint_underline(bool value)
  • bool is_hint_underlined

horizontal_alignment

Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the HorizontalAlignment constants.

var horizontal_alignment : int = 0

Property Value

int

Remarks

  • void set_horizontal_alignment(int value)
  • int get_horizontal_alignment

justification_flags

Line fill alignment rules. See JustificationFlag for more information.

var justification_flags : int = 163

Property Value

int

Remarks

  • void set_justification_flags(int value)
  • int get_justification_flags

language

Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead.

var language : String = ""

Property Value

String

Remarks

meta_underlined

If true, the label underlines meta tags such as [url]{text}[/url]. These tags can call a function when clicked if RichTextLabel.meta_clicked is connected to a function.

var meta_underlined : bool = true

Property Value

bool

Remarks

  • void set_meta_underline(bool value)
  • bool is_meta_underlined

progress_bar_delay

The delay after which the loading progress bar is displayed, in milliseconds. Set to -1 to disable progress bar entirely.

Note: Progress bar is displayed only if threaded is enabled.

var progress_bar_delay : int = 1000

Property Value

int

Remarks

  • void set_progress_bar_delay(int value)
  • int get_progress_bar_delay

scroll_active

If true, the scrollbar is visible. Setting this to false does not block scrolling completely. See RichTextLabel.scroll_to_line.

var scroll_active : bool = true

Property Value

bool

Remarks

  • void set_scroll_active(bool value)
  • bool is_scroll_active

scroll_following

If true, the window scrolls down to display new content automatically.

var scroll_following : bool = false

Property Value

bool

Remarks

  • void set_scroll_follow(bool value)
  • bool is_scroll_following

selection_enabled

If true, the label allows text selection.

var selection_enabled : bool = false

Property Value

bool

Remarks

  • void set_selection_enabled(bool value)
  • bool is_selection_enabled

shortcut_keys_enabled

If true, shortcut keys for context menu items are enabled, even if the context menu is disabled.

var shortcut_keys_enabled : bool = true

Property Value

bool

Remarks

  • void set_shortcut_keys_enabled(bool value)
  • bool is_shortcut_keys_enabled

structured_text_bidi_override

Set BiDi algorithm override for the structured text.

var structured_text_bidi_override : int = 0

Property Value

int

Remarks

  • void set_structured_text_bidi_override(int value)
  • int get_structured_text_bidi_override

structured_text_bidi_override_options

Set additional options for BiDi override.

var structured_text_bidi_override_options : Array = []

Property Value

Array

Remarks

  • void set_structured_text_bidi_override_options(Array value)
  • Array get_structured_text_bidi_override_options

tab_size

The number of spaces associated with a single tab length. Does not affect \t in text tags, only indent tags.

var tab_size : int = 4

Property Value

int

Remarks

  • void set_tab_size(int value)
  • int get_tab_size

tab_stops

Aligns text to the given tab-stops.

var tab_stops : PackedFloat32Array = PackedFloat32Array()

Property Value

PackedFloat32Array

Remarks

text

The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.

Note: If bbcode_enabled is true, it is unadvised to use the += operator with text (e.g. text += "some string") as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using push_* methods. Use RichTextLabel.append_text for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call.

var text : String = ""

Property Value

String

Remarks

text_direction

Base text writing direction.

var text_direction : int = 0

Property Value

int

Remarks

  • void set_text_direction(int value)
  • int get_text_direction

threaded

If true, text processing is done in a background thread.

var threaded : bool = false

Property Value

bool

Remarks

  • void set_threaded(bool value)
  • bool is_threaded

vertical_alignment

Controls the text's vertical alignment. Supports top, center, bottom, and fill. Set it to one of the VerticalAlignment constants.

var vertical_alignment : int = 0

Property Value

int

Remarks

  • void set_vertical_alignment(int value)
  • int get_vertical_alignment

visible_characters

The number of characters to display. If set to -1, all characters are displayed. This can be useful when animating the text appearing in a dialog box.

Note: Setting this property updates visible_ratio accordingly.

var visible_characters : int = -1

Property Value

int

Remarks

  • void set_visible_characters(int value)
  • int get_visible_characters

visible_characters_behavior

Sets the clipping behavior when visible_characters or visible_ratio is set. See VisibleCharactersBehavior for more info.

var visible_characters_behavior : int = 0

Property Value

int

Remarks

  • void set_visible_characters_behavior(int value)
  • int get_visible_characters_behavior

visible_ratio

The fraction of characters to display, relative to the total number of characters (see get_total_character_count). If set to 1.0, all characters are displayed. If set to 0.5, only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box.

Note: Setting this property updates visible_characters accordingly.

var visible_ratio : float = 1.0

Property Value

float

Remarks

  • void set_visible_ratio(float value)
  • float get_visible_ratio

default_color

Theme Property

The default text color.

 = ``Color(1, 1, 1, 1)``

Property Value

Color

font_outline_color

Theme Property

The default tint of text outline.

 = ``Color(0, 0, 0, 1)``

Property Value

Color

font_selected_color

Theme Property

The color of selected text, used when selection_enabled is true. If equal to Color(0, 0, 0, 0), it will be ignored.

 = ``Color(0, 0, 0, 0)``

Property Value

Color

font_shadow_color

Theme Property

The color of the font's shadow.

 = ``Color(0, 0, 0, 0)``

Property Value

Color

selection_color

Theme Property

The color of the selection box.

 = ``Color(0.1, 0.1, 1, 0.8)``

Property Value

Color

table_border

Theme Property

The default cell border color.

 = ``Color(0, 0, 0, 0)``

Property Value

Color

table_even_row_bg

Theme Property

The default background color for even rows.

 = ``Color(0, 0, 0, 0)``

Property Value

Color

table_odd_row_bg

Theme Property

The default background color for odd rows.

 = ``Color(0, 0, 0, 0)``

Property Value

Color

line_separation

Theme Property

Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative.

 = ``0``

Property Value

int

outline_size

Theme Property

The size of the text outline.

Note: If using a font with multichannel_signed_distance_field enabled, its msdf_pixel_range must be set to at least twice the value of outline_size for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.

 = ``0``

Property Value

int

shadow_offset_x

Theme Property

The horizontal offset of the font's shadow.

 = ``1``

Property Value

int

shadow_offset_y

Theme Property

The vertical offset of the font's shadow.

 = ``1``

Property Value

int

shadow_outline_size

Theme Property

The size of the shadow outline.

 = ``1``

Property Value

int

table_h_separation

Theme Property

The horizontal separation of elements in a table.

 = ``3``

Property Value

int

table_v_separation

Theme Property

The vertical separation of elements in a table.

 = ``3``

Property Value

int

text_highlight_h_padding

Theme Property

The horizontal padding around boxes drawn by the [fgcolor] and [bgcolor] tags. This does not affect the appearance of text selection.

 = ``3``

Property Value

int

text_highlight_v_padding

Theme Property

The vertical padding around boxes drawn by the [fgcolor] and [bgcolor] tags. This does not affect the appearance of text selection.

 = ``3``

Property Value

int

bold_font

Theme Property

The font used for bold text.

Font bold_font

Property Value

Font

bold_italics_font

Theme Property

The font used for bold italics text.

Font bold_italics_font

Property Value

Font

italics_font

Theme Property

The font used for italics text.

Font italics_font

Property Value

Font

mono_font

Theme Property

The font used for monospace text.

Font mono_font

Property Value

Font

normal_font

Theme Property

The default text font.

Font normal_font

Property Value

Font

bold_font_size

Theme Property

The font size used for bold text.

int bold_font_size

Property Value

int

bold_italics_font_size

Theme Property

The font size used for bold italics text.

int bold_italics_font_size

Property Value

int

italics_font_size

Theme Property

The font size used for italics text.

int italics_font_size

Property Value

int

mono_font_size

Theme Property

The font size used for monospace text.

int mono_font_size

Property Value

int

normal_font_size

Theme Property

The default text font size.

int normal_font_size

Property Value

int

focus

Theme Property

The background used when the RichTextLabel is focused. The focus StyleBox is displayed over the base StyleBox, so a partially transparent StyleBox should be used to ensure the base StyleBox remains visible. A StyleBox that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a StyleBoxEmpty resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.

StyleBox focus

Property Value

StyleBox

normal

Theme Property

The normal background for the RichTextLabel.

StyleBox normal

Property Value

StyleBox

Methods

add_image(Texture2D, int, int, Color, int, Rect2, Variant, bool, String, bool)

Adds an image's opening and closing tags to the tag stack, optionally providing a width and height to resize the image, a color to tint the image and a region to only use parts of the image.

If width or height is set to 0, the image size will be adjusted in order to keep the original aspect ratio.

If width and height are not set, but region is, the region's rect will be used.

key is an optional identifier, that can be used to modify the image via RichTextLabel.update_image.

If pad is set, and the image is smaller than the size specified by width and height, the image padding is added to match the size instead of upscaling.

If size_in_percent is set, width and height values are percentages of the control width instead of pixels.

void add_image(Texture2D image, int width, int height, Color color, int inline_align, Rect2 region, Variant key, bool pad, String tooltip, bool size_in_percent)

Parameters

image Texture2D
width int
height int
color Color
inline_align int
region Rect2
key Variant
pad bool
tooltip String
size_in_percent bool

add_text(String)

Adds raw non-BBCode-parsed text to the tag stack.

void add_text(String text)

Parameters

text String

append_text(String)

Parses bbcode and adds tags to the tag stack as needed.

Note: Using this method, you can't close a tag that was opened in a previous RichTextLabel.append_text call. This is done to improve performance, especially when updating large RichTextLabels since rebuilding the whole BBCode every time would be slower. If you absolutely need to close a tag in a future method call, append the text instead of using RichTextLabel.append_text.

void append_text(String bbcode)

Parameters

bbcode String

clear

Clears the tag stack, causing the label to display nothing.

Note: This method does not affect text, and its contents will show again if the label is redrawn. However, setting text to an empty String also clears the stack.

void clear

deselect

Clears the current selection.

void deselect

get_character_line(int)

Returns the line number of the character position provided. Line and character numbers are both zero-indexed.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

int get_character_line(int character)

Parameters

character int

get_character_paragraph(int)

Returns the paragraph number of the character position provided. Paragraph and character numbers are both zero-indexed.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

int get_character_paragraph(int character)

Parameters

character int

get_content_height

Qualifiers: const

Returns the height of the content.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

int get_content_height

get_content_width

Qualifiers: const

Returns the width of the content.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

int get_content_width

get_line_count

Qualifiers: const

Returns the total number of lines in the text. Wrapped text is counted as multiple lines.

Note: If visible_characters_behavior is set to TextServer.VC_CHARS_BEFORE_SHAPING only visible wrapped lines are counted.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

int get_line_count

get_line_offset(int)

Returns the vertical offset of the line found at the provided index.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

float get_line_offset(int line)

Parameters

line int

get_line_range(int)

Returns the indexes of the first and last visible characters for the given line, as a Vector2i.

Note: If visible_characters_behavior is set to TextServer.VC_CHARS_BEFORE_SHAPING only visible wrapped lines are counted.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

Vector2i get_line_range(int line)

Parameters

line int

get_menu

Qualifiers: const

Returns the PopupMenu of this RichTextLabel. By default, this menu is displayed when right-clicking on the RichTextLabel.

You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see MenuItems). For example:

func _ready():
    var menu = get_menu()
    # Remove "Select All" item.
    menu.remove_item(MENU_SELECT_ALL)
    # Add custom items.
    menu.add_separator()
    menu.add_item("Duplicate Text", MENU_MAX + 1)
    # Connect callback.
    menu.id_pressed.connect(_on_item_pressed)

func _on_item_pressed(id):
    if id == MENU_MAX + 1:
        add_text("\n" + get_parsed_text())

Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their visible property.

PopupMenu get_menu

get_paragraph_count

Qualifiers: const

Returns the total number of paragraphs (newlines or p tags in the tag stack's text tags). Considers wrapped text as one paragraph.

int get_paragraph_count

get_paragraph_offset(int)

Returns the vertical offset of the paragraph found at the provided index.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

float get_paragraph_offset(int paragraph)

Parameters

paragraph int

get_parsed_text

Qualifiers: const

Returns the text without BBCode mark-up.

String get_parsed_text

get_selected_text

Qualifiers: const

Returns the current selection text. Does not include BBCodes.

String get_selected_text

get_selection_from

Qualifiers: const

Returns the current selection first character index if a selection is active, -1 otherwise. Does not include BBCodes.

int get_selection_from

get_selection_line_offset

Qualifiers: const

Returns the current selection vertical line offset if a selection is active, -1.0 otherwise.

float get_selection_line_offset

get_selection_to

Qualifiers: const

Returns the current selection last character index if a selection is active, -1 otherwise. Does not include BBCodes.

int get_selection_to

get_total_character_count

Qualifiers: const

Returns the total number of characters from text tags. Does not include BBCodes.

int get_total_character_count

get_v_scroll_bar

Returns the vertical scrollbar.

Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their visible property.

VScrollBar get_v_scroll_bar

get_visible_line_count

Qualifiers: const

Returns the number of visible lines.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

int get_visible_line_count

get_visible_paragraph_count

Qualifiers: const

Returns the number of visible paragraphs. A paragraph is considered visible if at least one of its lines is visible.

Note: If threaded is enabled, this method returns a value for the loaded part of the document. Use is_finished or finished to determine whether document is fully loaded.

int get_visible_paragraph_count

install_effect(Variant)

Installs a custom effect. This can also be done in the Inspector through the custom_effects property. effect should be a valid RichTextEffect.

Example: With the following script extending from RichTextEffect:

# effect.gd
class_name MyCustomEffect
extends RichTextEffect

var bbcode = "my_custom_effect"



# ...

The above effect can be installed in RichTextLabel from a script:

# rich_text_label.gd
extends RichTextLabel

func _ready():
    install_effect(MyCustomEffect.new())

    # Alternatively, if not using `class_name` in the script that extends RichTextEffect:
    install_effect(preload("res://effect.gd").new())

void install_effect(Variant effect)

Parameters

effect Variant

invalidate_paragraph(int)

Invalidates paragraph and all subsequent paragraphs cache.

bool invalidate_paragraph(int paragraph)

Parameters

paragraph int

is_finished

Qualifiers: const

If threaded is enabled, returns true if the background thread has finished text processing, otherwise always return true.

bool is_finished

is_menu_visible

Qualifiers: const

Returns whether the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided).

bool is_menu_visible

is_ready

Qualifiers: const

If threaded is enabled, returns true if the background thread has finished text processing, otherwise always return true.

bool is_ready

menu_option(int)

Executes a given action as defined in the MenuItems enum.

void menu_option(int option)

Parameters

option int

newline

Adds a newline tag to the tag stack.

void newline

parse_bbcode(String)

The assignment version of RichTextLabel.append_text. Clears the tag stack and inserts the new content.

void parse_bbcode(String bbcode)

Parameters

bbcode String

parse_expressions_for_values(PackedStringArray)

Parses BBCode parameter expressions into a dictionary.

Dictionary parse_expressions_for_values(PackedStringArray expressions)

Parameters

expressions PackedStringArray

pop

Terminates the current tag. Use after push_* methods to close BBCodes manually. Does not need to follow add_* methods.

void pop

pop_all

Terminates all tags opened by push_* methods.

void pop_all

pop_context

Terminates tags opened after the last push_context call (including context marker), or all tags if there's no context marker on the stack.

void pop_context

push_bgcolor(Color)

Adds a [bgcolor] tag to the tag stack.

void push_bgcolor(Color bgcolor)

Parameters

bgcolor Color

push_bold

Adds a [font] tag with a bold font to the tag stack. This is the same as adding a [b] tag if not currently in a [i] tag.

void push_bold

push_bold_italics

Adds a [font] tag with a bold italics font to the tag stack.

void push_bold_italics

push_cell

Adds a [cell] tag to the tag stack. Must be inside a [table] tag. See RichTextLabel.push_table for details. Use RichTextLabel.set_table_column_expand to set column expansion ratio, RichTextLabel.set_cell_border_color to set cell border, RichTextLabel.set_cell_row_background_color to set cell background, RichTextLabel.set_cell_size_override to override cell size, and RichTextLabel.set_cell_padding to set padding.

void push_cell

push_color(Color)

Adds a [color] tag to the tag stack.

void push_color(Color color)

Parameters

color Color

push_context

Adds a context marker to the tag stack. See pop_context.

void push_context

push_customfx(RichTextEffect, Dictionary)

Adds a custom effect tag to the tag stack. The effect does not need to be in custom_effects. The environment is directly passed to the effect.

void push_customfx(RichTextEffect effect, Dictionary env)

Parameters

effect RichTextEffect
env Dictionary

push_dropcap(String, Font, int, Rect2, Color, int, Color)

Adds a [dropcap] tag to the tag stack. Drop cap (dropped capital) is a decorative element at the beginning of a paragraph that is larger than the rest of the text.

void push_dropcap(String string, Font font, int size, Rect2 dropcap_margins, Color color, int outline_size, Color outline_color)

Parameters

string String
font Font
size int
dropcap_margins Rect2
color Color
outline_size int
outline_color Color

push_fgcolor(Color)

Adds a [fgcolor] tag to the tag stack.

void push_fgcolor(Color fgcolor)

Parameters

fgcolor Color

push_font(Font, int)

Adds a [font] tag to the tag stack. Overrides default fonts for its duration.

Passing 0 to font_size will use the existing default font size.

void push_font(Font font, int font_size)

Parameters

font Font
font_size int

push_font_size(int)

Adds a [font_size] tag to the tag stack. Overrides default font size for its duration.

void push_font_size(int font_size)

Parameters

font_size int

push_hint(String)

Adds a [hint] tag to the tag stack. Same as BBCode [hint=something]{text}[/hint].

void push_hint(String description)

Parameters

description String

push_indent(int)

Adds an [indent] tag to the tag stack. Multiplies level by current tab_size to determine new margin length.

void push_indent(int level)

Parameters

level int

push_italics

Adds a [font] tag with an italics font to the tag stack. This is the same as adding an [i] tag if not currently in a [b] tag.

void push_italics

push_language(String)

Adds language code used for text shaping algorithm and Open-Type font features.

void push_language(String language)

Parameters

language String

push_list(int, int, bool, String)

Adds [ol] or [ul] tag to the tag stack. Multiplies level by current tab_size to determine new margin length.

void push_list(int level, int type, bool capitalize, String bullet)

Parameters

level int
type int
capitalize bool
bullet String

push_meta(Variant, int, String)

Adds a meta tag to the tag stack. Similar to the BBCode [url=something]{text}[/url], but supports non-String metadata types.

If meta_underlined is true, meta tags display an underline. This behavior can be customized with underline_mode.

Note: Meta tags do nothing by default when clicked. To assign behavior when clicked, connect RichTextLabel.meta_clicked to a function that is called when the meta tag is clicked.

void push_meta(Variant data, int underline_mode, String tooltip)

Parameters

data Variant
underline_mode int
tooltip String

push_mono

Adds a [font] tag with a monospace font to the tag stack.

void push_mono

push_normal

Adds a [font] tag with a normal font to the tag stack.

void push_normal

push_outline_color(Color)

Adds a [outline_color] tag to the tag stack. Adds text outline for its duration.

void push_outline_color(Color color)

Parameters

color Color

push_outline_size(int)

Adds a [outline_size] tag to the tag stack. Overrides default text outline size for its duration.

void push_outline_size(int outline_size)

Parameters

outline_size int

push_paragraph(int, int, String, int, int, PackedFloat32Array)

Adds a [p] tag to the tag stack.

void push_paragraph(int alignment, int base_direction, String language, int st_parser, int justification_flags, PackedFloat32Array tab_stops)

Parameters

alignment int
base_direction int
language String
st_parser int
justification_flags int
tab_stops PackedFloat32Array

push_strikethrough

Adds a [s] tag to the tag stack.

void push_strikethrough

push_table(int, int, int)

Adds a [table=columns,inline_align] tag to the tag stack. Use RichTextLabel.set_table_column_expand to set column expansion ratio. Use push_cell to add cells.

void push_table(int columns, int inline_align, int align_to_row)

Parameters

columns int
inline_align int
align_to_row int

push_underline

Adds a [u] tag to the tag stack.

void push_underline

remove_paragraph(int, bool)

Removes a paragraph of content from the label. Returns true if the paragraph exists.

The paragraph argument is the index of the paragraph to remove, it can take values in the interval [0, get_paragraph_count() - 1].

If no_invalidate is set to true, cache for the subsequent paragraphs is not invalidated. Use it for faster updates if deleted paragraph is fully self-contained (have no unclosed tags), or this call is part of the complex edit operation and RichTextLabel.invalidate_paragraph will be called at the end of operation.

bool remove_paragraph(int paragraph, bool no_invalidate)

Parameters

paragraph int
no_invalidate bool

scroll_to_line(int)

Scrolls the window's top line to match line.

void scroll_to_line(int line)

Parameters

line int

scroll_to_paragraph(int)

Scrolls the window's top line to match first line of the paragraph.

void scroll_to_paragraph(int paragraph)

Parameters

paragraph int

scroll_to_selection

Scrolls to the beginning of the current selection.

void scroll_to_selection

select_all

Select all the text.

If selection_enabled is false, no selection will occur.

void select_all

set_cell_border_color(Color)

Sets color of a table cell border.

void set_cell_border_color(Color color)

Parameters

color Color

set_cell_padding(Rect2)

Sets inner padding of a table cell.

void set_cell_padding(Rect2 padding)

Parameters

padding Rect2

set_cell_row_background_color(Color, Color)

Sets color of a table cell. Separate colors for alternating rows can be specified.

void set_cell_row_background_color(Color odd_row_bg, Color even_row_bg)

Parameters

odd_row_bg Color
even_row_bg Color

set_cell_size_override(Vector2, Vector2)

Sets minimum and maximum size overrides for a table cell.

void set_cell_size_override(Vector2 min_size, Vector2 max_size)

Parameters

min_size Vector2
max_size Vector2

set_table_column_expand(int, bool, int, bool)

Edits the selected column's expansion options. If expand is true, the column expands in proportion to its expansion ratio versus the other columns' ratios.

For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively.

If expand is false, the column will not contribute to the total ratio.

void set_table_column_expand(int column, bool expand, int ratio, bool shrink)

Parameters

column int
expand bool
ratio int
shrink bool

update_image(Variant, int, Texture2D, int, int, Color, int, Rect2, bool, String, bool)

Updates the existing images with the key key. Only properties specified by mask bits are updated. See RichTextLabel.add_image.

void update_image(Variant key, int mask, Texture2D image, int width, int height, Color color, int inline_align, Rect2 region, bool pad, String tooltip, bool size_in_percent)

Parameters

key Variant
mask int
image Texture2D
width int
height int
color Color
inline_align int
region Rect2
pad bool
tooltip String
size_in_percent bool

Events

finished

Triggered when the document is fully loaded.

Note: This can happen before the text is processed for drawing. Scrolling values may not be valid until the document is drawn for the first time after this signal.

signal finished

meta_clicked(Variant)

Triggered when the user clicks on content between meta (URL) tags. If the meta is defined in BBCode, e.g. [url={"key": "value"}]Text[/url], then the parameter for this signal will always be a String type. If a particular type or an object is desired, the RichTextLabel.push_meta method must be used to manually insert the data into the tag stack. Alternatively, you can convert the String input to the desired type based on its contents (such as calling JSON.parse on it).

For example, the following method can be connected to RichTextLabel.meta_clicked to open clicked URLs using the user's default web browser:

# This assumes RichTextLabel's `meta_clicked` signal was connected to
# the function below using the signal connection dialog.
func _richtextlabel_on_meta_clicked(meta):
    # `meta` is of Variant type, so convert it to a String to avoid script errors at run-time.
    OS.shell_open(str(meta))

signal meta_clicked(Variant meta)

Parameters

meta Variant

meta_hover_ended(Variant)

Triggers when the mouse exits a meta tag.

signal meta_hover_ended(Variant meta)

Parameters

meta Variant

meta_hover_started(Variant)

Triggers when the mouse enters a meta tag.

signal meta_hover_started(Variant meta)

Parameters

meta Variant