Skip to content

MPFTextInput

MPFTextInput is a Godot Node class provided by the MPF-GMC extension. It renders an on-screen keyboard and accepts button inputs to highlight, select, and submit user-input text.

Node Configuration

An MPFTextInput node can be placed anywhere in a slide or widget and is configured with the following properties.

allow_space:

Single value, type bool. Default True

If enabled, a special "SPACE" key will be added to the end of the on-screen keyboard for users to input a space.

allowed_characters:

Single value, type String. Default "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

This is the list of characters that will appear in the on-screen keyboard. There is no delimiter—each character present in the string will be rendered as an input key.

display_node:

Single value, type Node.

A Label or RichTextLabel node to render the current text string.

If RichTextLabel is used and preview_character is enabled, the preview character will have a highlight animation to indicate it's preview state.

grid_width:

Single value, type int. Default 0

The width (in pixels) of the grid that the keyboard will lay out in. If zero, the characters will have their natural width. If a character is wider than the defined grid width, it will be extended to the nearest multiple to maintain proper appearance.

Updates may not sync

Due to nuances in the Godot Editor, changing the grid_width and character font sizes may not always reflect accurately. It's recommended to close and reload the scene after saving one before adjusting the other.

input_name:

Single value, type String. Default "high_score"

This is the name of the text input, which is used to identify input presses from MPF and submit the text back to MPF.

max_length:

Single value, type int. Default 10

The maximum number of characters that can be input. When this limit is reached, the highlight will automatically move to END and additional character selections will be ignored.

preview_character:

Single value, type bool. Default True

If selected, the currently highlighted character will be rendered at the end of the text string to preview what the string will look like after the character is added.

If not selected, characters will only appear in the display node after they are selected.

Text Formatting:

character_appearance:

Single value, type LabelSettings.

A LabelSettings resource that will be applied to the characters of the on-screen keyboard. A saved file can be provided with Quick Load, or a resource created directly within the node by clicking New LabelSettings.

highlight_color:

Single value, type Color.

A color that will be applied to the highlight pulse animation to indicate the current highlight character on the keyboard.

special_appearance:

Single value, type LabelSettings.

A LabelSettings resource that will be applied to the special characters (SPACE, DEL, END) of the on-screen keyboard. A saved file can be provided with Quick Load, or a resource created directly within the node by clicking New LabelSettings.

If no settings are provided, the character_appearance will be applied to the special characters.

Events and MPF Integration

The MPFTextInput included in the default high_score mode has event controls already defined. These included event_player bindings use the standard flipper and start tags to control the input. If you are adding an MPFTextInput on your own to some other slide, or if you want to add more buttons to control the selected items on the high score slide, you will need to create a way to post text_input events with the appropriate action value.

For example, to allow more switches to control the on-screen keyboard, you could define an event_player that sends the event "text_input" with one of the three supported action values ("left", "right", or "select").

event_player:
  s_my_additional_left_control_active:
    text_input:
      action: left
  s_my_additional_right_control_active:
    text_input:
      action: right
  s_another_select_button_active:
    text_input:
      action: select

When the END key on the on-screen keyboard is selected, GMC will post an event text_input_<input_name>_complete where input_name is the input_name value of the MPFTextInput node.

This event will include an argument text with the text string entered by the user.

==='text_input_high_score_complete'=== Args={'text': 'MY NAME'}

Something missing or wrong? You can fix it!

This website is edited by people like you! Is something wrong or missing? Is something out of date, or can you explain it better?

Please help us! You can fix it yourself and be an official "open source" contributor!

It's easy! See our Beginner's guide to editing the docs.

Page navigation via the keyboard: < >

You can navigate this site via the keyboard. There are two modes:

General navigation, when search is not focused:

  • F , S , / : open search dialog
  • P , , : go to previous page
  • N , . : go to next page

While using the search function:

  • Down , Up : select next / previous result
  • Esc , Tab : close search
  • Enter : go to highlighted page in the results