Skip to content

Prompt Module โ€‹

The Prompt module provides a simple way to create and manage RedM prompts/hints that appear on screen.

Getting Started โ€‹

lua
local Prompt = exports.bln_lib:prompt()

Basic Usage โ€‹

Create a Prompt โ€‹

lua
-- Simple prompt
Prompt.create(
    "myGroup",      -- Group name
    "Press [E]",    -- Display text
    "INPUT_PICKUP"  -- Control key
)

-- Hold prompt
Prompt.create(
    "myGroup",      -- Group name
    "Hold [E]",     -- Display text
    "INPUT_PICKUP", -- Control key
    2000           -- Hold time in ms
)

-- Multiple keys prompt
Prompt.create(
    "myGroup",                               -- Group name
    "Press [E] or [ENTER]",                 -- Display text
    {"INPUT_PICKUP", "INPUT_FRONTEND_ACCEPT"} -- Multiple keys
)

Display Prompts โ€‹

lua
-- Show prompt group with title
Prompt.displayGroup("myGroup", "Interact")

Check Prompt State โ€‹

lua
-- Check if completed
if Prompt.isCompleted("myGroup", "INPUT_PICKUP") then
    -- Do something
end

-- Check completion with continuous firing
if Prompt.isCompleted("myGroup", "INPUT_PICKUP", true) then
    -- Do something repeatedly while held
end

Methods โ€‹

Prompt Creation โ€‹

lua
-- Create new prompt
Prompt.create(group, text, key, holdTime, page)

Prompt Management โ€‹

lua
-- Delete single prompt
Prompt.delete(group, key)

-- Delete group
Prompt.deleteGroup(group)

-- Delete all groups
Prompt.deleteAllGroups()

-- Edit prompt text
Prompt.editKeyLabel(group, key, newLabel)

Prompt Control โ€‹

lua
-- Enable/Disable prompt
Prompt.setEnabled(group, key, true/false)

-- Show/Hide prompt
Prompt.setVisible(group, key, true/false)

State Checks โ€‹

lua
-- Check if active
Prompt.isActive(group, key)

-- Check if enabled
Prompt.isEnabled(group, key)

-- Get hold progress (0.0 - 1.0)
Prompt.getProgress(group, key)

-- Check if key is pressed
Prompt.isPressed(key)

Examples โ€‹

Simple Interaction โ€‹

lua
-- Create interaction prompt
Prompt.create("interact", "Press [E] to Search", "INPUT_PICKUP")

-- Display in game loop
Citizen.CreateThread(function()
    while true do
        Wait(0)
        Prompt.displayGroup("interact", "Search Box")
        
        if Prompt.isCompleted("interact", "INPUT_PICKUP") then
            -- Handle interaction
            print("Searching box...")
        end
    end
end)

Hold Action โ€‹

lua
-- Create hold prompt
Prompt.create("craft", "Hold [E] to Craft", "INPUT_PICKUP", 2000)

-- Display and check
Citizen.CreateThread(function()
    while true do
        Wait(0)
        Prompt.displayGroup("craft", "Crafting")
        
        if Prompt.isCompleted("craft", "INPUT_PICKUP") then
            -- Crafting completed
            print("Item crafted!")
        end
    end
end)

Multiple Actions โ€‹

lua
-- Create multiple prompts in same group
Prompt.create("menu", "Press [E] to Buy", "INPUT_PICKUP")
Prompt.create("menu", "Press [R] to Sell", "INPUT_RELOAD")

-- Display both
Citizen.CreateThread(function()
    while true do
        Wait(0)
        Prompt.displayGroup("menu", "Store")
        
        if Prompt.isCompleted("menu", "INPUT_PICKUP") then
            print("Buying...")
        elseif Prompt.isCompleted("menu", "INPUT_RELOAD") then
            print("Selling...")
        end
    end
end)

Target Entity Prompt โ€‹

lua
local promptGroupId = Citizen.InvokeNative(0xB796970BD125FCE8, targetEntity) -- PromptGetGroupIdForTargetEntity