Native UI wont open again after failed Event

Hello, I have created a NativeUI menu that allows players to view and show their ID cards. However, I encountered an issue: when I attempt to show my ID card and there are no players nearby, I am unable to reopen the menu afterwards.

Here’s my code:

-- client.lua

_menuPool = NativeUI.CreatePool()
mainMenu = NativeUI.CreateMenu("~r~Averox Roleplay", "Averox Roleplay Lizenzen Menue")
_menuPool:Add(mainMenu)

function AddMenus(menu)
    local idCardSubMenu = _menuPool:AddSubMenu(menu, "Personalausweis", "Optionen zum Ansehen des Personalausweises")
    
    local viewIDCardItem = NativeUI.CreateItem("Personalausweis ansehen", "Sehe dir deinen eigenen Personalausweis an")
    idCardSubMenu:AddItem(viewIDCardItem)
    
    local showIDCardItem = NativeUI.CreateItem("Personalausweis zeigen", "Zeige deinen Personalausweis anderen Spielern")
    idCardSubMenu:AddItem(showIDCardItem)

    local driverLicenseSubMenu = _menuPool:AddSubMenu(menu, "Führerschein", "Optionen für den Führerschein")
    
    local viewLicenseItem = NativeUI.CreateItem("Führerschein ansehen", "Sehe dir deinen Führerschein an")
    driverLicenseSubMenu:AddItem(viewLicenseItem)
    
    local showLicenseItem = NativeUI.CreateItem("Führerschein zeigen", "Zeige deinen Führerschein anderen Spielern")
    driverLicenseSubMenu:AddItem(showLicenseItem)

    viewIDCardItem.Activated = function(sender, item)
        TriggerServerEvent('jsfour-idcard:open', GetPlayerServerId(PlayerId()), GetPlayerServerId(PlayerId()))
    end

    showIDCardItem.Activated = function(sender, item)
        local player, distance = ESX.Game.GetClosestPlayer()

        if distance ~= -1 and distance <= 3.0 then
            TriggerServerEvent('jsfour-idcard:open', GetPlayerServerId(PlayerId()), GetPlayerServerId(player))
        else
            ESX.ShowNotification('No players nearby')
        end
    end

    viewLicenseItem.Activated = function(sender, item)
        TriggerServerEvent('jsfour-idcard:open', GetPlayerServerId(PlayerId()), GetPlayerServerId(PlayerId()), 'driver')
    end

    showLicenseItem.Activated = function(sender, item)
        local player, distance = ESX.Game.GetClosestPlayer()

        if distance ~= -1 and distance <= 3.0 then
            TriggerServerEvent('jsfour-idcard:open', GetPlayerServerId(PlayerId()), GetPlayerServerId(player), 'driver')
        else
            ESX.ShowNotification('No players nearby')
        end
    end
end

AddMenus(mainMenu)
_menuPool:RefreshIndex()

RegisterCommand("openmenu", function()
    mainMenu:Visible(not mainMenu:Visible())
end, false)

Citizen.CreateThread(function()
    while true do
        Citizen.Wait(0)
        
        _menuPool:ProcessMenus()

        if IsControlJustReleased(1, 182) then
            mainMenu:Visible(not mainMenu:Visible())
        end
    end
end)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.