esx:getSharedObject nunca dispara
Um script usa um jeito antigo de se conectar ao ESX que o ESX moderno tirou. Não dá erro: simplesmente nunca funciona.
Faça isto primeiro
O script precisa de uma linha mudada. Peça para o vendedor uma versão para ESX Legacy.
O que significa
TriggerEvent('esx:getSharedObject', cb) foi por anos o jeito como todos os scripts do ESX conseguiam o objeto do core. O ESX Legacy removeu o evento. O disparo não dá erro: ninguém escuta, então o callback simplesmente nunca roda e o ESX fica nil para sempre.
Uma função que nunca se inicializa em silêncio é pior que um erro, e essa é a causa mais comum de «o script não faz nada e no console não tem nada».
O que causa isso
Ordenado pela frequência com que é a resposta.
- 1
Um script escrito para o ESX 1.1 rodando sobre o ESX Legacy
De longe o mais comum. Milhares de scripts publicados ainda usam isso.
- 2
O padrão copiado de um tutorial antigo
Quase todos os tutoriais de FiveM que existem na internet são anteriores ao Legacy.
- 3
Um resource migrado pela metade
Um arquivo atualizado para o export, outro ainda usando o evento.
Como saber qual é o seu
grep -rn "getSharedObject" meu-script/
Se aparece como um TriggerEvent, é o padrão antigo. Se o ESX é nil E não há erro nenhum no console, quase certamente é isso.
Onde olhar
O topo de cada arquivo de cliente e de servidor do resource.
Como consertar
-- antigo, não faz nada no ESX Legacy
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
-- atual
ESX = exports['es_extended']:getSharedObject()O export é síncrono, então a linha abaixo já pode usar o ESX.
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 Conversor de scripts traduz um resource entre ESX, QBCore e Qbox.