Quick answer: Godot RichTextLabel showing the literal text [color=red]Hello[/color] instead of rendering it? bbcode_enabled is off, or the tag syntax is malformed.

A dialog system prints colored text via BBCode but the brackets show as plain text. The RichTextLabel hasn’t parsed them as BBCode.

Enable BBCode

RichTextLabel has bbcode_enabled = false by default. Set it true. After that, text is parsed as BBCode. Without the flag, every bracket is text.

Use Append Methods

rich_label.append_text("[color=red]Danger[/color]")

Appends parsed BBCode. Setting text works too but rebuilds the entire content; append is cheaper for accumulating output.

Verify Tag Closing

Unmatched tags (open with no close) silently swallow following text or render incorrectly. Run a validator if users author BBCode — tag stack must balance.

Custom Colors

Named colors (red, blue, etc.) work; hex strings work: [color=#FFAA00]text[/color]. Custom colors register via RichTextEffect.

Verifying

BBCode renders styled text; tags don’t appear literally; colors and formatting apply consistently.

“bbcode_enabled = true. After that, brackets render as BBCode.”

Use a tiny BBCode validator if your dialog system accepts user-authored text — an unmatched tag swallows half the next paragraph.