THE ORB
Iniciando o studio

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.

groupsAquela função para de funcionarcodePrecisa de um desenvolvedor

Faça isto primeiro

Anote qual script ele nomeia; o conserto está no código daquele script.

bug_reportMelhor colar o console inteiro

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. 1

    Um objeto de jogador que não existe

    Um script de servidor procurando um jogador que se desconectou.

  2. 2

    Um await que foi esquecido

    const rows = db.query(...) sem await dá uma Promise, e ler um campo dela dá undefined.

  3. 3

    Desestruturar um objeto que falta

    const { id } = payload quando o payload nunca chegou.

  4. 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. 5

    Um export de um resource que não está iniciado

    exports['x'].y onde 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 Fixer

Para esse tipo de erro, o Script Optimizer lê o script e conserta o código por trás disso.

Erros que andam junto com este