# druid.rich_input API > at /druid/custom/rich_input/rich_input.lua The component that handles a rich text input field, it's a wrapper around the druid.input component ## Functions - [init](#init) - [set_placeholder](#set_placeholder) - [select](#select) - [set_text](#set_text) - [set_font](#set_font) - [get_text](#get_text) - [set_allowed_characters](#set_allowed_characters) ## Fields - [root](#root) - [input](#input) - [cursor](#cursor) - [cursor_text](#cursor_text) - [cursor_position](#cursor_position) - [druid](#druid) - [is_lshift](#is_lshift) - [is_lctrl](#is_lctrl) - [is_button_input_enabled](#is_button_input_enabled) - [drag](#drag) - [placeholder](#placeholder) - [text_position](#text_position) ### init --- ```lua rich_input:init(template, nodes) ``` - **Parameters:** - `template` *(string)*: The template string name - `nodes` *(table)*: Nodes table from gui.clone_tree ### set_placeholder --- ```lua rich_input:set_placeholder(placeholder_text) ``` Set placeholder text - **Parameters:** - `placeholder_text` *(string)*: The placeholder text - **Returns:** - `self` *(druid.rich_input)*: Current instance ### select --- ```lua rich_input:select() ``` Select input field - **Returns:** - `self` *(druid.rich_input)*: Current instance ### set_text --- ```lua rich_input:set_text(text) ``` Set input field text - **Parameters:** - `text` *(string)*: The input text - **Returns:** - `self` *(druid.rich_input)*: Current instance ### set_font --- ```lua rich_input:set_font(font) ``` Set input field font - **Parameters:** - `font` *(hash)*: The font hash - **Returns:** - `self` *(druid.rich_input)*: Current instance ### get_text --- ```lua rich_input:get_text() ``` Set input field text - **Returns:** - `` *(string)*: ### set_allowed_characters --- ```lua rich_input:set_allowed_characters(characters) ``` Set allowed charaters for input field. See: https://defold.com/ref/stable/string/ ex: [%a%d] for alpha and numeric - **Parameters:** - `characters` *(string)*: Regulax exp. for validate user input - **Returns:** - `self` *(druid.rich_input)*: Current instance ## Fields - **root** (_node_): The root node of the rich input - **input** (_druid.input_): The input component - **cursor** (_node_): The cursor node - **cursor_text** (_node_): The cursor text node - **cursor_position** (_vector3_): The position of the cursor - **druid** (_druid.instance_): The Druid Factory used to create components - **is_lshift** (_boolean_) - **is_lctrl** (_boolean_) - **is_button_input_enabled** (_unknown_) - **drag** (_druid.drag_): A component that allows you to subscribe to drag events over a node - **placeholder** (_druid.text_): Basic Druid text component. Text components by default have the text size adjusting. - **text_position** (_unknown_)