# druid.rich_text API > at /druid/custom/rich_text/rich_text.lua ## Functions - [init](#init) - [on_layout_change](#on_layout_change) - [on_style_change](#on_style_change) - [set_text](#set_text) - [get_text](#get_text) - [on_remove](#on_remove) - [clear](#clear) - [tagged](#tagged) - [characters](#characters) - [get_words](#get_words) - [get_line_metric](#get_line_metric) ## Fields - [root](#root) - [text_prefab](#text_prefab) - [style](#style) ### init --- ```lua rich_text:init(text_node, [value]) ``` - **Parameters:** - `text_node` *(string|node)*: The text node to make Rich Text - `[value]` *(string|nil)*: The initial text value. Default will be gui.get_text(text_node) ### on_layout_change --- ```lua rich_text:on_layout_change() ``` ### on_style_change --- ```lua rich_text:on_style_change(style) ``` - **Parameters:** - `style` *(druid.rich_text.style)*: ### set_text --- ```lua rich_text:set_text([text]) ``` Set text for Rich Text - **Parameters:** - `[text]` *(string|nil)*: The text to set - **Returns:** - `words` *(druid.rich_text.word[])*: - `line_metrics` *(druid.rich_text.lines_metrics)*: - **Example Usage:** ```lua rich_text:set_text("<color=red>Foobar</color>") rich_text:set_text("<color=1.0,0,0,1.0>Foobar</color>") rich_text:set_text("<color=#ff0000>Foobar</color>") rich_text:set_text("<color=#ff0000ff>Foobar</color>") rich_text:set_text("<shadow=red>Foobar</shadow>") rich_text:set_text("<shadow=1.0,0,0,1.0>Foobar</shadow>") rich_text:set_text("<shadow=#ff0000>Foobar</shadow>") rich_text:set_text("<shadow=#ff0000ff>Foobar</shadow>") rich_text:set_text("<outline=red>Foobar</outline>") rich_text:set_text("<outline=1.0,0,0,1.0>Foobar</outline>") rich_text:set_text("<outline=#ff0000>Foobar</outline>") rich_text:set_text("<outline=#ff0000ff>Foobar</outline>") rich_text:set_text("<font=MyCoolFont>Foobar</font>") rich_text:set_text("<size=2>Twice as large</size>") rich_text:set_text("<br/>Insert a line break") rich_text:set_text("<nobr>Prevent the text from breaking") rich_text:set_text("<img=texture:image>Display image") rich_text:set_text("<img=texture:image,size>Display image with size") rich_text:set_text("<img=texture:image,width,height>Display image with width and height") ``` ### get_text --- ```lua rich_text:get_text() ``` Get current text - **Returns:** - `text` *(string)*: ### on_remove --- ```lua rich_text:on_remove() ``` ### clear --- ```lua rich_text:clear() ``` Clear all created words. ### tagged --- ```lua rich_text:tagged(tag) ``` Get all words, which has a passed tag. - **Parameters:** - `tag` *(string)*: - **Returns:** - `words` *(druid.rich_text.word[])*: ### characters --- ```lua rich_text:characters(word) ``` Split a word into it's characters - **Parameters:** - `word` *(druid.rich_text.word)*: - **Returns:** - `characters` *(druid.rich_text.word[])*: ### get_words --- ```lua rich_text:get_words() ``` Get all current words. - **Returns:** - `` *(druid.rich_text.word[])*: ### get_line_metric --- ```lua rich_text:get_line_metric() ``` Get current line metrics -@return druid.rich_text.lines_metrics - **Returns:** - `` *(druid.rich_text.lines_metrics)*: ## Fields - **root** (_node_) - **text_prefab** (_node_) - **style** (_table_)