@ox_lib/init.lua nie znaleziono i błędy ox_lib: jak naprawić
Błędy o @ox_lib/init.lua, Nie ma takiego exportu w zasobie ox_lib, lub ox_lib nie uruchamia się: użyj kompilacji wydania, upewnij się najpierw, dodaj shared_script, włącz lua54.
Skrypt który używa ox_lib nie ładuje się w twojej konsoli i wiadomość wspomina @ox_lib/init.lua, lub nie powiedzie się z:
No such export <name> in resource ox_liblub ox_lib sam nigdy się nie uruchamia. Wszystkie te pochodzą z tej samej kilku przyczyn: zły pobór, zła nazwa folderu, zła kolejność uruchomienia, lub brakująca linia w manifeście. Tutaj jest naprawa dla każdego.
Co to jest ox_lib
ox_lib to biblioteka dzielona którą wiele skryptów zależy: callback'i, powiadomienia, menu, paski postępu, locales. Skrypt opt-in z jedną linią w manifeście:
shared_script '@ox_lib/init.lua'Prefiks @ox_lib/ mówi FiveM aby czytał plik z zasobu zwanego ox_lib, nie z własnego folderu skryptu. Więc ox_lib musi istnieć, mieć dokładnie tę nazwę, i być uruchomiony.
1. Pobierz wydanie, nie source zip
To jest przyczyna którą większość ludzi trafia. Na GitHub, zielony przycisk Code daje ci zip źródła. ox_lib ma interfejs web (menu, paski postępu) który jest zbudowany ze źródła plików. Źródło zip nie zawiera zbudowanych plików, więc ox_lib albo nie ładuje swoją UI albo loguje wiadomość o UI nie budowanej.
Zamiast tego:
- Otwórz repozytorium ox_lib na GitHub, potem Releases.
- Na najnowszym wydaniu, pobierz plik nazwany
ox_lib.zippod Assets. - Rozpakuj to. Folder wewnątrz musi być
ox_libifxmanifest.luamusi siedzieć bezpośrednio w nim.
resources/[standalone]/ox_lib/fxmanifest.luaJeśli masz folder źródła zwany ox_lib-main, usuń go i zainstaluj wydanie zamiast. Patrz też Could not find dependency dla problemów z nazwą folderu.
2. Uruchom ox_lib przed skryptami
W server.cfg, ox_lib musi przyjść przed każdym zasobem który go importuje:
ensure oxmysql
ensure ox_lib
ensure es_extended # or qb-core / qbx_core
ensure my_scriptJeśli my_script jest zapewniany powyżej ox_lib, może się załadować pierwszy i nie powiedzie się. Przesunięcie go w dół to naprawa. Patrz prawidłowa kolejność ensure w server.cfg.
Dodaj zależność w manifeście skryptu także, więc FiveM sprawdza:
dependency 'ox_lib'3. Dodaj shared script i lua54
Skrypty które używają funkcji lib. potrzebują dwie linie w fxmanifest.lua. Bez importu, lib jest nil w skrypcie, i dostajesz błędy takie jak 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' }Kolejność ma znaczenie: shared_script '@ox_lib/init.lua' musi być wymieniony aby się załadował przed plikami skryptu które wołują lib. Umieść to powyżej client_scripts i server_scripts.
4. Nie ma takiego exportu w zasobie ox_lib
No such export <name> in resource ox_libTo oznacza skrypt wołuje export ox_lib który nie istnieje na twoim serwerze. Są dwie przyczyny:
- Stary ox_lib. Skrypt został napisany dla nowszego wydania. Zaktualizuj do najnowszego kompilacji wydania.
- ox_lib nie uruchomił się, więc żaden z jego exportów nie istnieje. Spójrz na konsolę gdzie ox_lib się uruchamia. Jeśli wydrukował błąd tam, napraw to najpierw.
Sprawdzaj że ox_lib uruchamia się czysty: uruchom ensure ox_lib w konsoli serwera i przeczytaj co się drukuje. Zdrowe uruchomienie drukuje bez błędu i bez linii porażki.
5. Sprawdzaj artefakt serwera
ox_lib potrzebuje rozsądnie aktualnej kompilacji serwera FiveM. Jeśli ox_lib odmawia uruchomienia i wiadomość wspomina wersję serwera, zaktualizuj swoje artefakty. Kroki są w aktualizowaniu artefaktów serwera FiveM.
6. Skrypt sam nie jest winny
Jeśli ox_lib jest zainstalowany i uruchomiony, ale jeden skrypt wciąż psuje się, potwierdź że:
- Folder skryptu jest nazwany jak jego linia
ensuremówi. - Nie skopiowałeś
ox_libdo folderu skryptu. Musi być jeden zasóbox_lib, na najwyższym poziomieresources(lub w folderze nawiasu). - Żadna druga kopia
ox_libnie istnieje w innym folderze kategorii. Dwa foldery z tą samą nazwą zasobu powodują nieprzewidywalne zachowanie.
Porada: gdy aktualizujesz ox_lib, usuń stary folder najpierw zamiast rozpakować nad nim. Stare pliki pozostawione mogą się mieszać z nowymi.
Checklist
| Objaw | Naprawić |
|---|---|
@ox_lib/init.lua nie powiedzie się |
Zainstaluj ox_lib z dokładnie tą nazwą folderu |
| Części UI ox_lib brakuje | Użyj ox_lib.zip z Releases, nie source zip |
Nie ma takiego exportu ... w zasobie ox_lib |
Zaktualizuj ox_lib; sprawdzaj czy się uruchomił bez błędów |
lib jest nil w skrypcie |
Dodaj shared_script '@ox_lib/init.lua' do manifestu |
| Skrypt ładuje się przed ox_lib | ensure ox_lib powyżej skryptu w server.cfg |
| Błędy składni Lua przy ładowaniu | Dodaj lua54 'yes' do manifestu |
Szybkie odpowiedzi
Skąd pobrać ox_lib?
Ze strony Wydania repozytorium ox_lib, używając pliku ox_lib.zip dołączonego do najnowszego wydania. Nie używaj zielonego przycisku Code, Download ZIP, który nie ma zbudowanych plików web.
Dlaczego skrypt nie powiedzie się z @ox_lib/init.lua?
FiveM ładuje ten plik z zasobu ox_lib. Jeśli folder brakuje, jest źle nazwany, lub nie uruchamia się, ścieżka nie może być rozwiązana i skrypt nie powiedzie się.
Czy potrzebuję lua54 dla ox_lib?
Tak. Zasób który importuje @ox_lib/init.lua powinien deklarować lua54 'yes' w manifeście, ponieważ ox_lib sam używa Lua 5.4.
Skrypty bez tego problemu
Mic PhoneSkładany telefon, który rozkłada się w tablet i działa też na prawdziwym telefonie gracza.Zobacz skrypt →
Item Creator V2Twórz używalne przedmioty z animacjami, propami, efektami i nie tylko — bez pisania kodu.Zobacz skrypt →
Quest CreatorWizualny edytor questów i dialogów z NPC, budowanych węzeł po węźle w grze.Zobacz skrypt →