Um callback da NUI nunca dispara
Um botão do menu de um script não faz nada ao clicar, e normalmente também não aparece nada no console.
Faça isto primeiro
Reporte para o vendedor. Não tem nada na sua instalação que cause isso.
O que significa
O lado do navegador mandou algo para o cliente e não aconteceu nada. Normalmente não há erro nenhum em nenhum dos dois lados, e é isso que torna a coisa frustrante: o botão simplesmente não faz nada.
O que causa isso
Ordenado pela frequência com que é a resposta.
- 1
A URL não bate com o nome do resource
fetch('https://my-script/buy')precisa usar o nome EXATO do resource. Um hífen contra um sublinhado falha em silêncio. - 2
O nome do callback não bate
RegisterNUICallback('buy', ...)responde a.../buy, não a.../Buy. - 3
O cb nunca é chamado
O lado Lua precisa chamar
cb(...). Sem isso a promise do navegador nunca resolve, então a interface trava mesmo com o handler tendo rodado. - 4
O fetch não tem corpo POST
A NUI do FiveM espera um POST. Um GET, ou um POST sem corpo, pode não ser roteado.
- 5
A interface não está com o foco
Os callbacks funcionam sem foco, mas o CLIQUE que deveria disparar um não chega na página. O
SetNUIFocus(true, true)é o que permite que o cursor interaja.
Como saber qual é o seu
Abra as ferramentas de desenvolvimento da NUI e olhe a aba de rede: a requisição chega a sair? Se não, é a página ou o foco. Se sai e fica pendurada, o handler não está chamando o cb. Se dá 404, o nome está errado.
Onde olhar
A URL do fetch na página, e o nome do RegisterNUICallback no script do cliente. Eles precisam bater exatamente.
Como consertar
-- cliente
RegisterNUICallback('buy', function(data, cb)
-- fazer a coisa
cb({ ok = true }) -- responda SEMPRE, mesmo em caso de falha
end)
// página
await fetch(`https://${GetParentResourceName()}/buy`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ item: 'water' }),
})Ainda travado no seu próprio código?
Esta página é o que esse erro costuma significar. Cole o seu console no Server Fixer e ele vai ordenar tudo o que estiver lá e te dizer o que fazer primeiro; e se você preferir não mexer, o ORBIE consegue consertar o script e te devolver o resource pronto para soltar.
bug_reportAbrir o Server FixerPara esse tipo de erro, o Loading Screen Creator constrói NUI que funciona sem HTML escrito à mão.