Input Module โ
The Input module provides two methods for gathering user input in RedM:
- NUI (HTML-based) input forms
 - Native game input dialog
 
Getting Started โ
lua
local Input = exports.bln_lib:input()NUI Input โ
Simple Input โ
Quick way to create a single input field dialog.
lua
Input.simpleOpen(
    function(result)               -- Callback
        print("Input result: " .. result)
    end,
    "Enter Name",                 -- Title
    "Character Name",             -- Input Label
    "Enter your character name",  -- Placeholder
    "Submit",                     -- OK Button Label
    "Cancel"                      -- Cancel Button Label
)Custom Form Input โ
Create custom forms with multiple inputs.
lua
Input.open({
    isRTL = false,               -- Right-to-left support
    title = "Character Creation",
    labels = {
        submitLabel = "Create",
        closeLabel = "Cancel"
    },
    inputs = {
        {
            name = "firstname",
            label = "First Name",
            type = "text",
            value = "",
            attributes = {
                placeholder = "Enter first name"
            }
        },
        {
            name = "age",
            label = "Age",
            type = "number",
            value = "18",
            attributes = {
                min = "18",
                max = "90"
            }
        }
    }
}, function(data)
    print("First Name: " .. data.firstname)
    print("Age: " .. data.age)
end)Close NUI Input โ
Manually close the NUI input form.
lua
Input.close()Native Input โ
Use the game's built-in keyboard input.
lua
local result = Input.native(
    "Enter Name",           -- Label
    "John Doe",            -- Placeholder
    20                     -- Max Length (optional)
)
print("Input result: " .. result)Examples โ
Character Creation โ
lua
-- Using NUI input for multiple fields
Input.open({
    title = "Create Character",
    labels = {
        submitLabel = "Create",
        closeLabel = "Cancel"
    },
    inputs = {
        {
            name = "firstname",
            label = "First Name",
            type = "text",
            value = "",
            attributes = {
                placeholder = "Enter first name"
            }
        },
        {
            name = "lastname",
            label = "Last Name",
            type = "text",
            value = "",
            attributes = {
                placeholder = "Enter last name"
            }
        },
        {
            name = "age",
            label = "Age",
            type = "number",
            value = "18"
        }
    }
}, function(data)
    -- Process the form data
    CreateCharacter(data.firstname, data.lastname, data.age)
end)Quick Name Input โ
lua
-- Using simple NUI input
Input.simpleOpen(
    function(name)
        if name then
            SetCharacterName(name)
        end
    end,
    "Name Your Horse",
    "Horse Name",
    "Enter horse name",
    "Name",
    "Cancel"
)Password Entry โ
lua
-- Using native input for sensitive data
local password = Input.native(
    "Enter Password",
    "****",
    8
)
CheckPassword(password)Input Types for NUI Forms โ
The NUI form supports various input types:
lua
{
    -- Text input
    {
        type = "text",
        name = "username"
    },
    
    -- Number input
    {
        type = "number",
        name = "age"
    },
    
    -- Password input
    {
        type = "password",
        name = "password"
    }
}Best Practices โ
Choose the right input method:
- Use NUI for complex forms
 - Use native input for simple text entry
 
Always provide clear labels and placeholders
Handle empty responses:
lua
Input.simpleOpen(function(result)
    if result then
        -- Process valid input
    else
        -- Handle empty/cancelled input
    end
end, ...)- Set appropriate max lengths for native input:
 
lua
-- For names
local name = Input.native("Enter Name", "", 30)
-- For short codes
local code = Input.native("Enter Code", "", 6)