TypeError: não é possível ler propriedades de undefined
Um script esperava alguma informação e recebeu nada. É a mesma classe de problema do erro de Lua mais comum.
Faça isto primeiro
Anote qual script ele nomeia; o conserto está no código daquele script.
O que significa
A versão JavaScript de «attempt to index a nil value». Alguma coisa foi acessada sobre um valor que é undefined ou null. A mensagem nomeia a propriedade, o que diz qual acesso falhou mas não qual valor faltava.
O que causa isso
Ordenado pela frequência com que é a resposta.
- 1
Um objeto de jogador que não existe
Um script de servidor procurando um jogador que se desconectou.
- 2
Um await que foi esquecido
const rows = db.query(...)semawaitdá uma Promise, e ler um campo dela dá undefined. - 3
Desestruturar um objeto que falta
const { id } = payloadquando opayloadnunca chegou. - 4
Um dado de evento que o cliente não mandou
A mesma classe de bug da versão em Lua, no outro runtime.
- 5
Um export de um resource que não está iniciado
exports['x'].yonde o objeto de exports é undefined.
Como saber qual é o seu
console.log(typeof coisa, coisa)
logo acima da linha que falha. No FXServer isso é impresso no console do servidor como qualquer outra saída.
Onde olhar
A linha que ele nomeia, e depois a atribuição que produziu o valor undefined.
Como consertar
Use encadeamento opcional e valores padrão na fronteira:
const player = getPlayer(src)
if (!player) return
const amount = payload?.amount ?? 0
const rows = await db.query('SELECT ...')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 Script Optimizer lê o script e conserta o código por trás disso.