Text Input

A TextBox is a rectangle that allows a user to provide text input while it's in focus. When you script a TextBox, you can use it as a search bar or an input field on a form. To help users know what type of text they should input, you can also provide a prompt through the PlaceholderText property, such as "Search..." or "Enter Name...".

Because these objects are GuiObjects, you can customize properties such as BackgroundColor3, BorderMode, Transparency, and Rotation to fit the aesthetics of your experience.

Creating Text Inputs on the Screen

A TextBox on a screen is useful for things like an input field for a form.

To add a TextBox to a screen:

  1. In the Explorer window, select StarterGui and add a ScreenGui.

    1. Hover over StarterGui and click the ⊕ button. A contextual menu displays.

    2. Insert a ScreenGui.

  2. Select the new ScreenGui and add a TextBox.

    1. Hover over ScreenGui and click the ⊕ button. A contextual menu displays.

    2. Insert a TextBox.

Creating Text Inputs on Part Faces

To add a TextBox to the face of a part:

  1. In the Explorer window, select StarterGui and add a SurfaceGui.

    1. Hover over StarterGui and click the ⊕ button. A contextual menu displays.

    2. Insert a ScreenGui.

  2. Select the new SurfaceGui and add a TextBox.

    1. Hover over SurfaceGui and click the ⊕ button. A contextual menu displays.

    2. Insert a TextBox.

  3. Adorn the SurfaceGui to the part on which you want to display the TextBox.

    1. In the Properties window, select the Adornee property. Your cursor changes.

    2. In the Explorer window, select the part.

Scripting Text Inputs

Like buttons, you can script any action for a TextBox object to perform when a user interacts with it. For example, the following script connects to the FocusLost event, which fires when the user presses the Enter button or clicks outside the TextBox. The script prints the contents of the box to the Output window when the event fires:


local textBox = script.Parent
local function onFocusLost(enterPressed, inputObject)
if enterPressed then
print(textBox.Text)
end
end
textBox.FocusLost:Connect(onFocusLost)

As another example, you might want to only allow numbers in a TextBox. The following code uses the TextBox.GetPropertyChangedSignal event to detect when the TextBox.Text changes, such as when a user starts typing. Then it uses the string.gsub() function to disallow non-numbers:


local textBox = script.Parent
local function onlyAllowNumbers()
textBox.Text = string.gsub(textBox.Text, "%D", "")
end
textBox:GetPropertyChangedSignal("Text"):Connect(onlyAllowNumbers)