@ox_lib/init.lua non trovato e errori di ox_lib: come risolvere
Errori su @ox_lib/init.lua, No such export in resource ox_lib, o ox_lib non si avvia: usa la release build, assicuralo per primo, aggiungi lo shared_script, abilita lua54.
Uno script che usa ox_lib non carica nella console e il messaggio menziona @ox_lib/init.lua, o fallisce con:
No such export <name> in resource ox_libo ox_lib stesso non si avvia mai. Tutti questi derivano dalle stesse poche cause: il download sbagliato, il nome della cartella sbagliato, l'ordine di avvio sbagliato, o una riga mancante nel manifesto. Ecco la soluzione per ognuno.
Cosa è ox_lib
ox_lib è una libreria condivisa su cui molti script si basano: callback, notifiche, menu, barre di progresso, locale. Uno script sceglie di partecipare con una riga nel suo manifesto:
shared_script '@ox_lib/init.lua'Il prefisso @ox_lib/ dice a FiveM di leggere il file dalla risorsa chiamata ox_lib, non dalla cartella dello script stesso. Quindi ox_lib deve esistere, avere esattamente quel nome, e essere avviato.
1. Scarica la release, non la zip del codice sorgente
Questa è la causa che la maggior parte delle persone incontra. Su GitHub, il pulsante verde Code ti dà una zip del codice sorgente. ox_lib ha un'interfaccia web (menu, barre di progresso) che è costruita da file sorgente. La zip del codice sorgente non contiene i file costruiti, quindi ox_lib o non carica l'interfaccia utente o registra un messaggio su l'interfaccia utente non essere costruita.
Invece:
- Apri il repository di ox_lib su GitHub, poi Releases.
- Sulla versione più recente, scarica il file denominato
ox_lib.zipsotto Assets. - Decomprimi. La cartella all'interno deve essere
ox_libefxmanifest.luadeve stare direttamente in essa.
resources/[standalone]/ox_lib/fxmanifest.luaSe hai una cartella sorgente chiamata ox_lib-main, rimuovila e installa la release. Vedi anche Could not find dependency per problemi di nome della cartella.
2. Avvia ox_lib prima degli script
In server.cfg, ox_lib deve venire prima di qualsiasi risorsa che lo importa:
ensure oxmysql
ensure ox_lib
ensure es_extended # or qb-core / qbx_core
ensure my_scriptSe my_script è assicurato sopra ox_lib, potrebbe caricarsi per primo e fallire. Spostarlo verso il basso è la soluzione. Vedi l'ordine ensure corretto in server.cfg.
Aggiungi la dipendenza anche nel manifesto dello script, così FiveM lo controlla:
dependency 'ox_lib'3. Aggiungi lo shared script e lua54
Gli script che usano le funzioni lib. hanno bisogno di due righe in fxmanifest.lua. Senza l'importazione, lib è nil nello script, e ottieni errori come attempt to index a nil value (global 'lib'):
fx_version 'cerulean'
game 'gta5'
lua54 'yes'
shared_script '@ox_lib/init.lua'
client_scripts { 'client/*.lua' }
server_scripts { 'server/*.lua' }L'ordine è importante: shared_script '@ox_lib/init.lua' deve essere elencato in modo da caricarsi prima dei file di script che chiamano lib. Mettilo sopra client_scripts e server_scripts.
4. No such export in resource ox_lib
No such export <name> in resource ox_libQuesto significa che lo script chiama un export di ox_lib che non esiste sul tuo server. Ci sono due cause:
- Un ox_lib vecchio. Lo script è stato scritto per una versione più nuova. Aggiorna alla release build più recente.
- ox_lib non si è avviato, quindi nessuno dei suoi export esiste. Guarda la console dove ox_lib si avvia. Se ha stampato un errore lì, risolvi quello per primo.
Controlla che ox_lib si avvia pulitamente: esegui ensure ox_lib nella console del server e leggi cosa stampa. Un avvio sano non stampa errore e nessuna riga di fallimento.
5. Controlla l'artifact del server
ox_lib ha bisogno di una build del server FiveM ragionevolmente attuale. Se ox_lib rifiuta di avviarsi e il messaggio menziona la versione del server, aggiorna i tuoi artifact. I passaggi sono in aggiornamento degli artifact del server FiveM.
6. Lo script stesso non è la colpa
Se ox_lib è installato e avviato, ma uno script ancora si rompe, conferma che:
- La cartella dello script è denominata come la sua riga
ensuredice. - Non hai copiato
ox_libnella cartella dello script. Deve esserci una risorsaox_lib, a livello superiore diresources(o in una cartella tra parentesi). - Nessuna seconda copia di
ox_libesiste in un'altra cartella di categoria. Due cartelle con lo stesso nome di risorsa causano comportamenti imprevedibili.
Consiglio: quando aggiorni ox_lib, elimina la vecchia cartella invece di decomprimere su di essa. I vecchi file rimasti indietro possono mescolarsi con i nuovi.
Checklist
| Sintomo | Soluzione |
|---|---|
@ox_lib/init.lua fallisce |
Installa ox_lib con quel nome di cartella esatto |
| Le parti dell'interfaccia utente di ox_lib mancano | Usa ox_lib.zip da Releases, non la zip del codice sorgente |
No such export ... in resource ox_lib |
Aggiorna ox_lib; controlla che si sia avviato senza errori |
lib è nil in uno script |
Aggiungi shared_script '@ox_lib/init.lua' al suo manifesto |
| Lo script carica prima di ox_lib | ensure ox_lib sopra lo script in server.cfg |
| Errori di sintassi Lua al caricamento | Aggiungi lua54 'yes' al manifesto |
Risposte rapide
Da dove scarico ox_lib?
Dalla pagina Releases del repository di ox_lib, usando il file ox_lib.zip allegato alla versione più recente. Non usare il pulsante verde Code, Download ZIP, che non ha file web compilati.
Perché lo script fallisce con @ox_lib/init.lua?
FiveM carica quel file dalla risorsa ox_lib. Se la cartella manca, è nominata male, o non si avvia, il percorso non può essere risolto e lo script fallisce.
Ho bisogno di lua54 per ox_lib?
Sì. Una risorsa che importa @ox_lib/init.lua dovrebbe dichiarare lua54 'yes' nel suo manifesto, poiché ox_lib stesso usa Lua 5.4.
Script senza questo problema
Mic PhoneUn telefono pieghevole che si apre in un tablet e arriva sul telefono vero del giocatore.Vedi script →
Item Creator V2Crea oggetti utilizzabili con animazioni, props, effetti e altro — senza scrivere codice.Vedi script →
Quest CreatorUn editor visuale di missioni e dialoghi con gli NPC, costruito nodo per nodo in gioco.Vedi script →