Przestań przewijać tysiące wierszy pliku dziennika, próbując dowiedzieć się, który mod zepsuł Twoją grę.
Narzędzie do usuwania błędów dziennika przechwytuje wszystkie błędy i ostrzeżenia generowane przez grę i zapisuje je w przejrzystym, czytelnym raporcie — tylko błędy i ostrzeżenia, nic więcej. Następnie szereguje każdy mod w twoim folderze według liczby różnych problemów, które powoduje, więc winowajca znajduje się na górze listy, a nie jest pogrzebany gdzieś w dzienniku liczącym 6000 wierszy.
Co to robi
Zapisuje raport zawierający wyłącznie błędy i ostrzeżenia, zapisywany jako plik log_errors.txt obok normalnego dziennika
Klasyfikuje Twoje mody od najgorszych do najlepszych według określonej liczby błędów, z flagami dla poważnych przestępców
Zwija powtarzające się wiadomości — jeden mod rzucający to samo ostrzeżenie 500 razy pokazuje raz liczbę, a nie 500 linii
Dzieli raport mod po modach, dzięki czemu możesz dokładnie zobaczyć, co każdy z nich rzuca
Polecenia konsoli są dostępne dla każdego, kto je woli: dumpLogErrors, topLogErrors, countLogErrors, clearLogErrors
Rozpoczęcie
Przypisz klawisz w obszarze Opcje → Sterowanie → Ekstraktor błędów dziennika, załaduj zapisany zapis i naciśnij go. Menu otwiera się w dowolnym miejscu — na piechotę, w pojeździe, nie ma znaczenia. Przełącz opcje za pomocą strzałek i naciśnij OK.
Zapisz raport do pliku — zapisuje pełny raport w pliku log_errors.txt w folderze Farming Simulator 2025.
Pokaż najgorsze modyfikacje — wyświetla największych przestępców bezpośrednio na ekranie, bez konieczności umieszczania pliku.
Pokaż liczbę — informuje, ile błędów i ostrzeżeń zostało przechwyconych do tej pory.
Wyczyść — usuwa wszystko, co zebrano do tej pory, dzięki czemu następny raport będzie czysty.
Ten ostatni jest najbardziej przydatny, gdy polujesz na konkretny konflikt. Wyczyść bufor, odtwórz wszystko, co się zepsuło, a następnie zapisz raport — będzie on zawierał tylko to, co wydarzyło się pomiędzy.
Ważne – nie zmieniaj nazwy moda
Folder celowo nosi nazwę FS25_AAA_LogErrorExtractor. Farming Simulator ładuje mody alfabetycznie, a AAA wymusza załadowanie tego moda jako pierwszego, aby mógł wychwytywać błędy ze wszystkiego, co ładuje się po nim. Zmień jego nazwę, a zostanie on zrzucony na listę i wszystko, co się ładuje, zanim nie zostanie przechwycone.
Wymagania i ograniczenia
Tylko komputer. To jest mod skryptowy, a mody skryptowe nie są obsługiwane na PlayStation i Xbox.
Na razie tylko singleplayer. Tryb wieloosobowy jest raczej nietestowany, a nie uszkodzony — uznano go za nieobsługiwany, więc nie zostanie załadowany w zapisie MP. Jeśli chcesz pomóc, wpisz <multiplayersupport="true"/> w opisie modDesc, przetestuj go i daj mi znać, co się stanie.
Nie może przechwytywać błędów, które wystąpiły przed załadowaniem, dlatego nie będą wyświetlane komunikaty dotyczące uruchamiania gry podstawowej ani komunikaty na poziomie silnika. Sprawdź, czy nie ma ich w pliku log.txt gry.
Zgłaszanie problemów
Mod zapisuje mały plik sprawdzający stan gry, log_status.txt, za każdym razem, gdy ładujesz zapis. Jeśli coś nie działa, otwórz to i załącz, jeśli zgłaszasz problem.
Niepotrzebne pliki zostały usunięte z zip.
Wiem, że powiedziałem, aby nie zmieniać nazwy zip zarówno w moim poście, jak i w filmie pokazującym, jak używać. W komentarzach pojawiło się jednak zastrzeżenie, o którym nie pomyślałem.
Prefiks FS25_ to zasada przesyłania do ModHuba firmy GIANTS, a nie coś, czego wymaga silnik gry. Gra dba tylko o to, aby nazwa składała się z liter, cyfr i podkreśleń i nie zaczynała się od cyfry. Zmiana nazwy pliku zip na AAA_LogErrorExtractor.zip działa dobrze.
Więc śmiało, kliknij mod prawym przyciskiem myszy, wybierz opcję zmiany nazwy, a następnie usuń przedrostek FS25_, jeśli okaże się, że nie znaleziono modów.
Sprawdź dziennik konsoli lub gry podstawowej i zobacz ostrzeżenie o teksturze w pliku `log.txt` — nieprzetworzonym formacie PNG, który powinien być plikiem DDS, a narzędzie do wyodrębniania błędów dziennika go nie przechwyciło. Raport wrócił czysty. Wyglądało to na błąd w ekstraktorze. To nie jest. To granica działania moda i warto ją zapisać.
Jak faktycznie działa ekstraktor
Nie może odczytać pliku `log.txt`. Zostało to ustalone już wcześniej: piaskownica Lua pozwala tylko na `io.open` w trybie zapisu, a gra i tak trzyma otwarty plik dziennika wyłącznie. Nic w modzie skryptowym nie może go otworzyć i zeskrobać. Zamiast więc czytać dziennik, ekstraktor znajduje się przed funkcjami, które *zapisują* do niego. W czasie ładowania otacza `printError`, `printWarning`, całą rodzinę `Logging` i filtrowany `print`, buforuje wszystko, co zostanie im przekazane, i zrzuca ten bufor na polecenie. To działa dobrze. Przy zamówieniu ładowania na 1200 modów przechwycił 3182 wiadomości.
Dlaczego ten się prześliznął
Haki nie zawodzą. Gdyby to ostrzeżenie przeszło przez którąkolwiek z tych funkcji, wylądowałoby na śmietniku wraz z pozostałymi trzema tysiącami. To nie było. Więc w ogóle nie przeszło przez Luę. Ładowanie tekstur odbywa się w warstwie C++ silnika, która zapisuje bezpośrednio do pliku `log.txt`. W ścieżce nie ma funkcji Lua, więc nie ma nic do zawinięcia. Jeśli połączyć to z brakiem możliwości ponownego odczytania dziennika, wiadomość będzie naprawdę nieosiągalna. Nie jest to „trudne do złapania”, nieosiągalne w przypadku tego projektu.
Co jeszcze mieści się w tej kategorii
Wszystko, co silnik obsługuje sam, zamiast kierować przez skrypt:
format tekstur i problemy z ładowaniem
Błędy ładowania i3d
komunikaty kompilacji modułu cieniującego
Wszystko, co raportuje kod Lua moda, jest nadal wychwytywane normalnie, co stanowi zdecydowaną większość tego, co faktycznie ma znaczenie, gdy gonisz za uszkodzonym modem.
Praktyczne dania na wynos
„0 błędów” z ekstraktora oznacza „0 błędów zgłoszonych przez Lua”. Nie oznacza to, że dziennik jest czysty. To rozróżnienie należy do pliku README, ponieważ tester, który przeczyta go w niewłaściwy sposób, zgłosi mod jako sprawny, podczas gdy tak nie jest.
Możliwa przyszła praca
Objęcie tej klasy wymagałoby zupełnie innego mechanizmu, skanującego bezpośrednio folder modów w poszukiwaniu tekstur w formacie surowym, zamiast czekać, aż silnik narzeka. To całkowicie omija dziennik. Zależy to od dostępności listy katalogów w piaskownicy, co nie zostało zweryfikowane. Warto sprawdzić, ale jest to raczej nowa funkcja niż poprawka.