Couldn't start resource: perché FiveM non avvia il tuo script

Couldn't start resource X o Failed to start resource nella tua console FiveM? Le cause usuali (manifest, nome della cartella, errore Lua, dipendenza, escrow) e come trovare la tua.

Esegui ensure my_script o avvia il server, e la console stampa:

text
Couldn't start resource my_script.

Quella riga ti dice solo il risultato. La causa è nelle righe sopra di essa. Questa guida elenca le cause usuali, nell'ordine che vale la pena controllare, e mostra come leggere la console per sapere quale hai tu.

Leggi prima le righe sopra

Scorri verso l'alto da Couldn't start resource nella console del server, o nella console dal vivo di txAdmin. La riga direttamente sopra è quasi sempre la ragione: una dipendenza mancante, un errore di parsing con un file e un numero di riga, o un problema di manifest.

Se la console è troppo rumorosa, ferma il server, riavvialo, e esegui solo la risorsa che fallisce:

text
ensure my_script

Ora tutto ciò che viene stampato subito dopo quel comando appartiene alla risorsa.

1. La risorsa non è trovata

text
Couldn't find resource my_script.

FiveM cerca una cartella nominata esattamente my_script da qualche parte sotto resources, e quella cartella deve contenere un file nominato fxmanifest.lua (o il vecchio __resource.lua). Controlla tre cose:

  • Il nome in server.cfg corrisponde al nome della cartella, lettera per lettera. Su un host Linux, My_Script e my_script sono diversi.
  • Il file manifest è nominato fxmanifest.lua, non fxmanifest.lua.txt (Windows nasconde le estensioni note) e non fxmanifest (1).lua.
  • Esegui refresh nella console del server dopo aver aggiunto una nuova cartella, poi ensure di nuovo. Un server in esecuzione non scansiona per nuove cartelle fino a quando non lo fai.

2. Cartella nidificata dopo decompressione

Questo è l'errore più comune con gli script scaricati. Decomprimi my_script.zip e finisci con:

text
resources/
  my_script/
    my_script/
      fxmanifest.lua
      client/
      server/

Il manifest è uno livello troppo profondo, quindi FiveM vede my_script come una semplice cartella senza manifest. Sposta la cartella interna verso l'alto così che fxmanifest.lua sia direttamente dentro la cartella che fai ensure.

Le cartelle di categoria scritte tra parentesi, come [mic], vanno bene: FiveM le cerca. Una risorsa dentro un'altra risorsa no.

3. Un errore di sintassi Lua al caricamento

text
Error parsing script @my_script/server/main.lua in resource my_script: @my_script/server/main.lua:42: unexpected symbol near 'end'
Couldn't start resource my_script.

Il messaggio nomina il file e la riga (main.lua:42). Apri quella riga e guarda anche quella prima di essa: un end mancante, una virgola mancante in una tabella, o un carattere strano da un brutto copia e incolla. Correggilo, poi ensure di nuovo.

Due cause che sembrano errori di sintassi ma non lo sono:

  • Lo script usa la sintassi Lua 5.4 (<const>, <close>, divisione intera) e il manifest manca di lua54 'yes'.
  • Il file è stato salvato con un encoding diverso o ha un BOM. Salvalo come UTF-8 senza BOM.

4. Dipendenza mancante

text
Could not find dependency ox_lib for resource my_script.
Couldn't start resource my_script.

Il manifest chiede un'altra risorsa che non è sul tuo server. Installala e mantieni il nome della cartella esatto. La spiegazione completa è in Could not find dependency X for resource Y.

5. Errori di manifest

Un fxmanifest.lua cattivo ferma la risorsa prima che qualsiasi script venga eseguito. Controlla:

lua
fx_version 'cerulean'
game 'gta5'

client_scripts { 'client/*.lua' }
server_scripts { 'server/*.lua' }

Errori comuni: un fx_version o game mancante, una virgola mancante tra le voci in un elenco { }, un percorso di file nel manifest che non esiste, e un percorso con la direzione dello slash o la capitalizzazione sbagliata. Usa le barre in avanti. Se la risorsa spedisce ancora un __resource.lua, vedi conversione di __resource.lua a fxmanifest.lua.

6. Escrow, entitlement e licenza

Gli script protetti (escrowed) verificano che la chiave di licenza del tuo server appartenga all'account Cfx.re che possiede l'asset. Se non è così, la risorsa si rifiuta di avviarsi e la riga sopra dice che ti manca l'entitlement. Quella è una correzione separata: escrow: You lack the required entitlement.

7. La risorsa si avvia, poi fallisce in un altro modo

A volte l'avvio ha successo e il fallimento arriva un secondo dopo, da un SCRIPT ERROR in un file di script, come un valore nil dal framework. Questo non è più un problema di avvio. Leggi la riga di errore, trova il file e il numero di riga, e risolvilo. Se l'oggetto del framework è nil, inizia con la guida ESX o QBCore.

Un modo veloce per testare il manifest

Inizia con una risorsa di test pulita. Crea resources/test_ok/fxmanifest.lua:

lua
fx_version 'cerulean'
game 'gta5'

server_script 'server.lua'

e resources/test_ok/server.lua:

lua
print('test_ok started')

Esegui refresh poi ensure test_ok. Se funziona, il tuo server e i percorsi sono a posto, e l'errore è dentro la risorsa che stai cercando.

Checklist

Sintomo Soluzione
Couldn't find resource my_script. Il nome della cartella differisce da ensure, o nessun fxmanifest.lua; esegui refresh
La cartella è my_script/my_script/ Decompresso un livello troppo profondo; sposta la cartella interna verso l'alto
Error parsing script ... unexpected symbol Errore di sintassi al file e riga mostrati
Could not find dependency Installa la dipendenza, nome cartella esatto
Nulla sopra la riga che fallisce Esegui ensure da solo e leggi ciò che viene stampato dopo di esso
Testo di entitlement o licenza Escrow: chiave di licenza e account Cfx.re devono corrispondere

Risposte rapide

Cosa significa Couldn't start resource?

FiveM ha trovato la risorsa ma si è fermato mentre la avviava. La ragione non è mai su quella riga: è una o più righe stampate appena sopra di essa nella console.

Perché dice Couldn't find resource?

Il nome in ensure non corrisponde a nessuna cartella sotto resources, o la cartella non ha fxmanifest.lua al suo livello superiore. Controlla l'ortografia e la cartella che hai decompresso.

Può un errore Lua fermare una risorsa dall'avviarsi?

Sì. Un errore di sintassi in un file di script fa fallire l'intera risorsa dal caricamento. La console mostra il file e il numero di riga dell'errore.

Script senza questo problema

Item Creator V2Crea oggetti utilizzabili con animazioni, props, effetti e altro — senza scrivere codice.Vedi script →Shop CreatorCrea un negozio in meno di un minuto — proprietari, dipendenti, casseforti e rapine inclusi.Vedi script →Quest CreatorUn editor visuale di missioni e dialoghi con gli NPC, costruito nodo per nodo in gioco.Vedi script →

Continua a leggere