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:
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:
ensure my_scriptTeraz wszystko wydrukowane tuż po tym poleceniu należy do zasobu.
1. Zasób nie jest znaleziony
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.cfgpasuje do nazwy folderu, litera po literze. Na hoście Linux,My_Scriptimy_scriptto różne. - Plik manifestu ma nazwę
fxmanifest.lua, niefxmanifest.lua.txt(Windows ukrywa znane rozszerzenia) i niefxmanifest (1).lua. - Uruchom
refreshw konsoli serwera po dodaniu nowego folderu, potemensureponownie. 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:
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
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 brakujelua54 'yes'. - Plik został zapisany z innym kodowaniem lub ma BOM. Zapisz to jako UTF-8 bez BOM.
4. Brakująca zależność
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ć:
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:
fx_version 'cerulean'
game 'gta5'
server_script 'server.lua'i resources/test_ok/server.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 →