THE ORB
Démarrage du studio

TypeError : impossible de lire les propriétés de undefined

Un script attendait une information et n'a rien reçu. C'est la même classe de problème que l'erreur Lua la plus courante.

groupsCette fonctionnalité cesse de marchercodeIl faut un développeur

Faites d'abord ceci

Notez le script qu'elle nomme ; le correctif est dans le code de ce script.

bug_reportCollez plutôt toute votre console

Ce que ça veut dire

La version JavaScript de « attempt to index a nil value ». Quelque chose a été lu sur une valeur undefined ou null. Le message nomme la propriété, ce qui indique quel accès a échoué mais pas quelle valeur manquait.

Ce qui la provoque

Classé par fréquence : la cause la plus probable en premier.

  1. 1

    Un objet joueur qui n'existe pas

    Un script serveur qui cherche un joueur déconnecté.

  2. 2

    Un await oublié

    const rows = db.query(...) sans await donne une Promise, et en lire un champ donne undefined.

  3. 3

    Déstructurer un objet manquant

    const { id } = payload alors que payload n'est jamais arrivé.

  4. 4

    Des données d'événement que le client n'a pas envoyées

    La même classe de bug que la version Lua, sur l'autre runtime.

  5. 5

    Un export d'une ressource non démarrée

    exports['x'].y où l'objet d'exports est undefined.

Comment savoir laquelle est la vôtre

console.log(typeof chose, chose)

juste au-dessus de la ligne fautive. Dans FXServer, cela s'affiche dans la console du serveur comme n'importe quelle autre sortie.

Où regarder

La ligne nommée, puis l'affectation qui a produit la valeur undefined.

Comment la corriger

Utilisez le chaînage optionnel et des valeurs par défaut à la frontière :

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

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

Toujours bloqué sur votre propre code ?

Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.

bug_reportOuvrir le Server Fixer

Pour ce type d'erreur, le Script Optimizer lit le script et répare le code derrière tout ça.

Les erreurs qui voyagent avec celle-ci