Patrones de uso

Mostrar un aviso mientras el jugador está en una zona

Llama a show una vez al entrar y a hide una vez al salir. No llames a show en cada frame.

client.lua

CreateThread(function()
    local promptVisible = false
    local location = vector3(-1037.0, -2737.0, 20.2)

    while true do
        local playerCoords = GetEntityCoords(PlayerPedId())
        local nearby = #(playerCoords - location) < 2.0

        if nearby and not promptVisible then
            exports.jex_interactions:show({
                id    = 'atm',
                key   = 'E',
                label = 'Usar cajero',
            })
            promptVisible = true
        elseif not nearby and promptVisible then
            exports.jex_interactions:hide('atm')
            promptVisible = false
        end

        Wait(250)
    end
end)

Mostrar una tecla no gestiona su pulsación: la lógica de la interacción sigue siendo de tu recurso.

client.lua

if promptVisible and IsControlJustReleased(0, 38) then -- INPUT_CONTEXT / E
    TriggerEvent('my_resource:openMenu')
end

Varias acciones con prioridad

client.lua

exports.jex_interactions:show({
    id       = 'primary_action',
    key      = 'E',
    label    = 'Abrir',
    priority = 100,
})

exports.jex_interactions:show({
    id       = 'secondary_action',
    key      = 'G',
    label    = 'Inspeccionar',
    priority = 50,
})

Si hay más avisos que Config.MaxVisible, los de menos prioridad esperan a que quede sitio.

Declarar la dependencia en el manifest

No hace falta si el orden de arranque ya está garantizado en server.cfg. Si prefieres que tu recurso no arranque sin el HUD, decláralo:

fxmanifest.lua

dependency 'jex_interactions'

client_script 'client.lua'