Couldn't start resource: dlaczego FiveM nie uruchamia twojego skryptu

Couldn't start resource X lub Failed to start resource w konsoli FiveM? Zwykłe przyczyny (manifest, nazwa folderu, błąd Lua, zależność, escrow) i jak znaleźć swoją.

Uruchamiasz ensure my_script lub uruchamiasz serwer, a konsola wydrukuje:

text
Couldn't start resource my_script.

Ta linia tylko mówi ci wynik. Przyczyna jest w liniach powyżej niej. Ten poradnik wymieniał zwykłe przyczyny, w kolejności warte sprawdzenia, i pokazuje jak czytać konsolę, aby wiedzieć, którą masz.

Najpierw przeczytaj linie powyżej

Przewiń do góry z Couldn't start resource w konsoli serwera, lub w konsoli live txAdmin. Linia bezpośrednio powyżej to prawie zawsze przyczyna: brakująca zależność, błąd parse'u z plikiem i numerem linii, lub problem manifestu.

Jeśli konsola jest zbyt głośna, zatrzymaj serwer, uruchom go ponownie, i uruchom tylko zasób, który się psuje:

text
ensure my_script

Teraz wszystko wydrukowane tuż po tym poleceniu należy do zasobu.

1. Zasób nie jest znaleziony

text
Couldn't find resource my_script.

FiveM szuka folderu nazwanego dokładnie my_script gdzieś pod resources, i folder musi zawierać plik nazywany fxmanifest.lua (lub stary __resource.lua). Sprawdzić trzy rzeczy:

  • Nazwa w server.cfg pasuje do nazwy folderu, litera po literze. Na hoście Linux, My_Script i my_script to różne.
  • Plik manifestu ma nazwę fxmanifest.lua, nie fxmanifest.lua.txt (Windows ukrywa znane rozszerzenia) i nie fxmanifest (1).lua.
  • Uruchom refresh w konsoli serwera po dodaniu nowego folderu, potem ensure ponownie. Działający serwer nie skanuje nowe foldery, aż to zrobisz.

2. Folder zagnieżdżony po rozpakowanie

To najczęstszy błąd z pobranymi skryptami. Rozpakujesz my_script.zip i skończy się z:

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

Manifest jest jeden poziom zbyt głębokim, więc FiveM widzi my_script jako zwykły folder bez manifestu. Przenieś folder wewnętrzny w górę, aby fxmanifest.lua siedział bezpośrednio wewnątrz folderu, który zapewniasz.

Foldery kategorii napisane w nawiasach, takie jak [mic], są ok: FiveM przegląda je. Zasób wewnątrz innego zasobu nie.

3. Błąd składni Lua przy załadowaniu

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.

Wiadomość nazywa plik i linię (main.lua:42). Otwórz tę linię i patrz na linię przed nią też: brakujące end, brakujący przecinek w tabeli, lub błądzący znak ze złego copy paste. Napraw to, potem ensure ponownie.

Dwie przyczyny, które wyglądają jak błędy składni, ale nie są:

  • Skrypt używa składni Lua 5.4 (<const>, <close>, dzielenie całkowite) i manifest brakuje lua54 'yes'.
  • Plik został zapisany z innym kodowaniem lub ma BOM. Zapisz to jako UTF-8 bez BOM.

4. Brakująca zależność

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

Manifest prosi o inny zasób, który nie jest na twoim serwerze. Zainstaluj to i trzymaj jego nazwę folderu dokładnie. Pełne wyjaśnienie jest w Could not find dependency X for resource Y.

5. Błędy manifestu

Zły fxmanifest.lua zatrzymuje zasób, zanim jakikolwiek skrypt się uruchamia. Sprawdzić:

lua
fx_version 'cerulean'
game 'gta5'

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

Częste błędy: brakujące fx_version lub game, brakujący przecinek między wpisami w liście { }, ścieżka pliku w manifeście, która nie istnieje, i ścieżka ze złym kierunkiem ukośnika lub kapitalizacją. Używaj ukośników do przodu. Jeśli zasób wciąż wysyła __resource.lua, zobacz converting __resource.lua to fxmanifest.lua.

6. Escrow, uprawnienie i licencja

Chronione (escrowed) skrypty sprawdzają, że klucz licencji twojego serwera należy do konta Cfx.re, które jest właścicielem zasobu. Jeśli nie, zasób odmawia startu i linia powyżej mówi, że brakuje ci uprawnienia. To jest osobna naprawa: escrow: You lack the required entitlement.

7. Zasób się uruchamia, potem się nie powiedzie w inny sposób

Czasem start się powiedzie i porażka przychodzi sekundę później, ze SCRIPT ERROR w pliku skryptu, takim jak wartość nil ze struktury. To już nie jest problem startu. Przeczytaj linię błędu, znajdź plik i numer linii, i napraw to. Jeśli obiekt struktury to nil, zacznij z the ESX lub QBCore poradnikiem.

Szybki sposób na testowanie manifestu

Zacznij z czystym zasobem testowym. Utwórz resources/test_ok/fxmanifest.lua:

lua
fx_version 'cerulean'
game 'gta5'

server_script 'server.lua'

i resources/test_ok/server.lua:

lua
print('test_ok started')

Uruchom refresh potem ensure test_ok. Jeśli to działa, twój serwer i ścieżki są ok, i błąd jest wewnątrz zasobu, który ścigasz.

Lista kontrolna

Symptom Naprawa
Couldn't find resource my_script. Nazwa folderu różni się od ensure, lub brak fxmanifest.lua; uruchom refresh
Folder to my_script/my_script/ Rozpakowany jeden poziom zbyt głębokim; przenieś folder wewnętrzny w górę
Error parsing script ... unexpected symbol Błąd składni w pliku i linii pokazanej
Could not find dependency Zainstaluj zależność, dokładna nazwa folderu
Nic powyżej linii porażki Uruchom ensure sam i przeczytaj co wydrukuje się po nim
Tekst uprawnienia lub licencji Escrow: klucz licencji i konto Cfx.re muszą się zgadzać

Szybkie odpowiedzi

Co oznacza Couldn't start resource?

FiveM znalazł zasób, ale zatrzymał się podczas uruchamiania go. Powód nigdy nie jest w tej linii: to jedna lub więcej linii wydrukowanych tuż ponad nią w konsoli.

Dlaczego mówi Couldn't find resource?

Nazwa w ensure nie pasuje do żadnego folderu pod resources, lub folder nie ma fxmanifest.lua na jego najwyższym poziomie. Sprawdzić pisownię i folder, który rozpakujesz.

Czy błąd Lua może zatrzymać zasób przed startem?

Tak. Błąd składni w pliku skryptu powoduje, że cały zasób nie może się załadować. Konsola pokazuje plik i numer linii błędu.

Skrypty bez tego problemu

Item Creator V2Twórz używalne przedmioty z animacjami, propami, efektami i nie tylko — bez pisania kodu.Zobacz skrypt →Shop CreatorZbuduj sklep w niecałą minutę — właściciele, pracownicy, sejfy i napady w zestawie.Zobacz skrypt →Quest CreatorWizualny edytor questów i dialogów z NPC, budowanych węzeł po węźle w grze.Zobacz skrypt →

Czytaj dalej