
Każdy właściciel serwera FiveM prędzej czy później spotka się z tajemniczymi błędami, które psują rozgrywkę. Kluczem do ich rozwiązania jest konsola deweloperska, dostępna pod klawiszem F8. To potężne narzędzie diagnostyczne, które pozwala zidentyfikować wadliwe skrypty i zrozumieć, co dokładnie poszło nie tak. Ten poradnik nauczy Cię, jak czytać i interpretować komunikaty o błędach, co jest pierwszym i najważniejszym krokiem do stworzenia stabilnego serwera RP.
Dzięki opanowaniu tej umiejętności przestaniesz błądzić po omacku, zgadując, który zasób powoduje problemy. Zamiast tego nauczysz się precyzyjnie lokalizować źródło błędu, co znacząco przyspieszy naprawę i poprawi ogólną jakość Twojego serwera. Zaczynajmy!
Wymagania Wstępne
- Dostęp do klienta gry FiveM.
- Działający serwer FiveM (lokalny lub zdalny), na którym masz uprawnienia administratora.
- Podstawowa umiejętność nawigacji po plikach serwera.
- Edytor kodu (np. Visual Studio Code) do przeglądania plików skryptów.
Przewodnik Krok po Kroku
Krok 1: Otwarcie konsoli
Podstawą jest dostęp do konsoli. Wejdź na swój serwer FiveM, a następnie naciśnij klawisz F8. Na ekranie pojawi się okno konsoli. Możesz przełączać się między konsolą klienta a konsolą serwera (jeśli masz odpowiednie uprawnienia), klikając odpowiednie zakładki u góry.
Krok 2: Identyfikacja błędu
Błędy w konsoli są zazwyczaj oznaczone kolorem czerwonym i zawierają charakterystyczne słowa kluczowe, takie jak „Error” lub „failed to”. Przewiń logi w poszukiwaniu takich wpisów. Błędy mogą pojawić się w momencie ładowania zasobu, wykonywania określonej akcji w grze lub po prostu w losowym momencie. Zwróć uwagę na kontekst – co robiłeś w grze, gdy błąd się pojawił?
Krok 3: Analiza komunikatu błędu
Typowy komunikat o błędzie w skrypcie LUA składa się z trzech kluczowych części. Przeanalizujmy przykładowy błąd:
[script:esx_jobs] SCRIPT ERROR: @esx_jobs/client/main.lua:150: attempt to index a nil value (local 'playerData')- Nazwa zasobu:
[script:esx_jobs]– To mówi nam, który skrypt jest źródłem problemu. W tym przypadku jest toesx_jobs. - Ścieżka do pliku i numer linii:
@esx_jobs/client/main.lua:150– To najcenniejsza informacja. Wskazuje dokładny plik (client/main.luaw folderze skryptu) oraz linię (150), w której wystąpił błąd. - Treść błędu:
attempt to index a nil value (local 'playerData')– To opisuje naturę błędu. W tym przypadku skrypt próbował odwołać się do zmiennejplayerData, która w danym momencie nie miała żadnej wartości (była `nil`).
- Nazwa zasobu:
Krok 4: Lokalizacja problemu w kodzie
Mając informacje z kroku 3, otwórz pliki swojego serwera. Przejdź do folderu
resources/[jobs]/esx_jobs/, otwórz plikclient/main.luaw edytorze kodu i przejdź do linii 150. Zobaczysz tam fragment kodu, który powoduje problem. Teraz możesz spróbować go naprawić lub poszukać rozwiązania w Internecie, podając dokładny komunikat błędu.
Przykładowy Kod / Konfiguracja
Poniżej znajduje się kolejny przykład błędu, który możesz napotkać w konsoli F8, wraz z jego szczegółową analizą.
[script:qb-garages] SCRIPT ERROR: error object is not a string
stack traceback:
@qb-garages/server/main.lua:210: in method 'sendErrorMessage'
@qb-garages/server/main.lua:355: in upvalue 'handler'
citizen:/scripting/lua/scheduler.lua:924: in function <citizen:/scripting/lua/scheduler.lua:915>W tym przykładzie widzimy tzw. „stack traceback” (ślad stosu), który pokazuje sekwencję wywołań funkcji prowadzących do błędu. Najważniejsza jest zazwyczaj pierwsza linia od góry. Błąd wystąpił w skrypcie qb-garages, w pliku server/main.lua w linii 210, wewnątrz funkcji o nazwie sendErrorMessage. Problem polega na tym, że do funkcji, która oczekiwała tekstu (string), przekazano obiekt innego typu. Analizując kod w linii 210 i funkcje, które ją wywołują (linia 355), możemy zlokalizować przyczynę i ją naprawić.
Podsumowanie
Konsola F8 to Twój najlepszy przyjaciel w zarządzaniu serwerem FiveM. Regularne jej sprawdzanie, nawet gdy wszystko wydaje się działać poprawnie, pozwala wyłapać ukryte problemy, zanim przerodzą się w poważne awarie. Umiejętność czytania i interpretowania błędów jest absolutnie kluczowa dla każdego dewelopera i administratora.
Nie bój się czerwonych linii w konsoli – traktuj je jako wskazówki, które pomogą Ci ulepszyć i ustabilizować Twój projekt. Im więcej błędów przeanalizujesz, tym szybciej będziesz w stanie diagnozować i rozwiązywać przyszłe problemy.






