O SendNUIMessage chega vazio ou nunca chega
Um script tentou mandar informação para o próprio menu e não deu para mandar, então o menu não mostra nada.
Faça isto primeiro
Reporte para o vendedor, com esta linha.
O que significa
O SendNUIMessage serializa a tabela para JSON e envia para a página. Os valores que o JSON não consegue expressar são descartados ou fazem a codificação inteira falhar, e uma codificação que falha não manda nada: normalmente sem dar erro.
O que causa isso
Ordenado pela frequência com que é a resposta.
- 1
Uma função dentro da tabela
Callbacks não podem ser serializados. A codificação falha e a mensagem some.
- 2
Uma entidade ou um vetor
GetEntityCoordsdevolve um vector3, que não é uma tabela simples. Mande{ x = c.x, y = c.y, z = c.z }no lugar. - 3
Uma tabela cíclica
Uma tabela que se referencia a si mesma, direta ou indiretamente.
- 4
Chaves de array e de mapa misturadas
{ 1, 2, foo = 'bar' }codifica para algo que a página não vai ler nem como array nem como objeto. - 5
A página não tem listener de mensagens
A mensagem chega e ninguém está esperando: outro problema com o mesmo sintoma.
Como saber qual é o seu
Codifique você mesmo primeiro:
print(json.encode(payload))
Se isso der erro ou imprimir algo inesperado, o problema é o que você manda. Se imprimir JSON limpo, a página não está escutando.
Onde olhar
A tabela que é passada ao SendNUIMessage, e o listener de message da página.
Como consertar
-- mande só dados simples
SendNUIMessage({
action = 'open',
coords = { x = c.x, y = c.y, z = c.z },
items = items, -- um array puro
})
// página
window.addEventListener('message', (event) => {
const data = event.data
if (data.action === 'open') { /* ... */ }
})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.