THE ORB
Arrancando el studio

TypeError: no se pueden leer propiedades de undefined

Un script esperaba alguna información y recibió nada. Es la misma clase de problema que el error de Lua más común.

groupsEsa función deja de andarcodeNecesita un desarrollador

Haz esto primero

Anota qué script nombra; el arreglo está en el código de ese script.

bug_reportMejor pega tu consola entera

Qué significa

La versión de JavaScript de «attempt to index a nil value». Se accedió a algo sobre un valor que es undefined o null. El mensaje nombra la propiedad, lo que te dice qué acceso falló pero no qué valor faltaba.

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    Un objeto de jugador que no existe

    Un script de servidor buscando a un jugador que se desconectó.

  2. 2

    Un await que se olvidó

    const rows = db.query(...) sin await da una Promise, y leerle un campo da undefined.

  3. 3

    Desestructurar un objeto que falta

    const { id } = payload cuando payload no llegó nunca.

  4. 4

    Un dato de evento que el cliente no mandó

    La misma clase de fallo que la versión de Lua, en el otro runtime.

  5. 5

    Un export de un recurso que no está arrancado

    exports['x'].y donde el objeto de exports es undefined.

Cómo saber cuál es el tuyo

console.log(typeof cosa, cosa)

justo encima de la línea que falla. En FXServer esto se imprime en la consola del servidor como cualquier otra salida.

Dónde mirar

La línea que nombra, y después la asignación que produjo el valor undefined.

Cómo arreglarlo

Usá encadenamiento opcional y valores por defecto en la frontera:

const player = getPlayer(src)
if (!player) return

const amount = payload?.amount ?? 0
const rows = await db.query('SELECT ...')

¿Sigues atascado en tu propio código?

Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.

bug_reportAbrir el Server Fixer

Para este tipo de error, el Script Optimizer lee el script y repara el código que hay detrás.

Errores que viajan con este