THE ORB
Arrancando el studio

esx:getSharedObject no se dispara nunca

Un script usa una forma vieja de conectarse a ESX que el ESX moderno quitó. No da error: sencillamente nunca funciona.

groupsEl script no hace nada, en silenciocodeNecesita un desarrollador

Haz esto primero

Al script hay que cambiarle una línea. Pídele al vendedor una versión para ESX Legacy.

bug_reportMejor pega tu consola entera

Qué significa

TriggerEvent('esx:getSharedObject', cb) fue durante años la forma en que todos los scripts de ESX conseguían el objeto del core. ESX Legacy quitó el evento. El disparo no da error: nadie lo escucha, así que el callback sencillamente no se ejecuta nunca y ESX se queda en nil para siempre.

Una función que nunca se inicializa en silencio es peor que un error, y esta es la causa más común de «el script no hace nada y en la consola no hay nada».

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    Un script escrito para ESX 1.1 corriendo sobre ESX Legacy

    De lejos lo más común. Miles de scripts publicados todavía lo usan.

  2. 2

    El patrón copiado de un tutorial viejo

    Casi todos los tutoriales de FiveM que hay en internet son anteriores a Legacy.

  3. 3

    Un recurso migrado a medias

    Un archivo actualizado al export, otro todavía usando el evento.

Cómo saber cuál es el tuyo

grep -rn "getSharedObject" mi-script/

Si aparece como un TriggerEvent, es el patrón viejo. Si ESX es nil Y no hay ningún error en la consola, casi seguro que es esto.

Dónde mirar

La cabecera de cada archivo de cliente y de servidor del recurso.

Cómo arreglarlo

-- viejo, no hace nada en ESX Legacy
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)

-- actual
ESX = exports['es_extended']:getSharedObject()

El export es síncrono, así que la línea de abajo ya puede usar ESX.

¿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 Conversor de scripts traduce un recurso entre ESX, QBCore y Qbox.

Errores que viajan con este