Euro Truck Simulator 2 to świetny symulator jazdy tirem, a od niedawna – również i autobusem. Ale nie jest to tanie, bo pojazdy są drogie, a nie każdy ma tyle siły i samozaparcia, by przejechać setki tysięcy kilometrów na zleceniach, by kupić swój pierwszy pojazd. Może sobie dodamy tej kasy? Tylko jak?
Klasyczny poradnik do ETS2 mówi: „zmień g_save_format na 2 w config.cfg, zrób zapis i wyedytuj game.sii w Notatniku”. W praktyce na nowoczesnym Linuksie, ze Steamem i aktywną (lub wcześniej używaną) synchronizacją Steam Cloud, ta ścieżka potrafi rzucić pod koła kilka niespodzianek. Poniżej opisuję realny proces krok po kroku – od znalezienia adekwatnego folderu zapisu po odszyfrowanie binarki ScsC i BSII w czystym TypeScripcie.
Pułapka 1: Gdzie faktycznie leżą zapisy gry?
Domyślnie na Linuksie katalog główny ETS2 znajduje się w ~/.local/share/Euro Truck Simulator 2/. Znajdziesz tam plik config.cfg oraz foldery profiles i steam_profiles.
Problem w tym, iż jeżeli Twój profil był kiedykolwiek synchronizowany ze Steam Cloud, samo odznaczenie chmury we adekwatnościach gry na Steamie nie przenosi plików do ~/.local/share/Euro Truck Simulator 2/profiles. Gra przez cały czas czyta i zapisuje profil bezpośrednio w katalogu userdata Steama:
~/.local/share/Steam/userdata/<ID_KONTA_STEAM>/227300/remote/profiles/<HEX_NAZWY_PROFILU>/(gdzie 227300 to AppID Euro Truck Simulator 2, a nazwa folderu profilu to zakodowana heksadecymalnie nazwa kierowcy).
Wewnątrz tego katalogu znajdziesz podfolder save/ z kolejnymi slotami (1, 2, autosave, autosave_job itd.) oraz plikami game.sii.
Ważna uwaga dla graczy World of Trucks: Konto WoTr przechowuje w chmurze wyłącznie statystyki zleceń zewnętrznych i osiągnięcia z eventów – sam stan konta w euro siedzi lokalnie w game.sii. Upewnij się jednak, iż nie masz aktywnego zlecenia zewnętrznego podczas edycji zapisu – w przeciwnym razie gra wykryje rozbieżność z serwerem WoTr i odrzuci zapis przy wczytywaniu.
Pułapka 2: Dlaczego g_save_format "2" czasem nie wystarcza?
Ustawienie uset g_save_format "2" w ~/.local/share/Euro Truck Simulator 2/config.cfg powinno wymusić zapis pliku game.sii w czytelnym formacie tekstowym (SiiNunit). W nowszych wersjach ETS2 (1.50+) profil potrafi jednak nadpisywać to ustawienie własnym plikiem config.cfg w userdata lub przez cały czas zapisywać pliki w kontenerze ScsC.
Sprawdzenie nagłówka pliku zapisu (head -c 16 game.sii | xxd) od razu pokazuje, z czym mamy do czynienia:
00000000: 5363 7343 80ba f75f 380b 2e5b 614a abff ScsC..._8..[aJ..Nagłówek ScsC (53 63 73 43) oznacza plik zaszyfrowany algorytmem AES-256-CBC i skompresowany przy pomocy zlib. Co więcej, po odszyfrowaniu i rozpakowaniu ScsC, w środku nie znajduje się czysty tekst, ale binarny format BSII, który wymaga osobnego zdekodowania do składni SiiNunit.
Rozwiązanie: Dekodowanie ScsC + BSII dzięki sii-decrypt-ts
Zamiast uruchamiać narzędzia z Windowsa przez Wine lub kompilować stare binarki C++, można użyć czystej biblioteki TypeScript: Trucky/sii-decrypt-ts. Obsługuje ona pełny potok: deszyfrowanie AES (ScsC), dekompresję zlib oraz serializację binarnego BSII do czystego tekstu SiiNunit.
Krok 1: Wyłącz grę i zlokalizuj najnowszy zapis
Upewnij się, iż ETS2 jest całkowicie zamknięty, a następnie przypisz ścieżkę do swojego folderu save w userdata:
SAVE_DIR="$HOME/.local/share/Steam/userdata/<ID_STEAM>/227300/remote/profiles/<ID_PROFILU>/save" export LATEST_SAVE=$(find "$SAVE_DIR" -name "game.sii" -printf "%T@ %p\n" | sort -nr | head -n 1 | cut -d' ' -f2-) echo "Najnowszy zapis: $LATEST_SAVE"Krok 2: Skompiluj dekryptor w /tmp
cd /tmp && \ git clone --depth 1 https://github.com/Trucky/sii-decrypt-ts.git /tmp/ets2_dec && \ cd /tmp/ets2_dec && \ npm install --silent && \ npx tscKrok 3: Zrób backup, zdekoduj zapis i zmień money_account
Biblioteka udostępnia klasę SIIDecryptor. Wywołanie SIIDecryptor.decrypt(sciezka, true) zwraca obiekt wyniku, w którym gotowy, czytelny tekst znajduje się we adekwatności string_content.
Poniższy jednolinijkowiec tworzy kopię zapasową .bak, dekoduje plik i podmienia wartość money_account na 2000000 (2 mln €):
cd /tmp/ets2_dec && node -e ' const fs = require("fs"); const { SIIDecryptor } = require("./dist/index.js"); const savePath = process.env.LATEST_SAVE; if (!savePath) throw new Error("Ustaw najpierw zmienna LATEST_SAVE!"); if (!fs.existsSync(savePath + ".bak")) { fs.copyFileSync(savePath, savePath + ".bak"); } const res = SIIDecryptor.decrypt(savePath, true); if (!res.success || !res.string_content) { throw new Error("Blad dekodowania: " + JSON.stringify(res)); } const updated = res.string_content.replace(/(money_account:\s*)\d+/, "$12000000"); if (updated === res.string_content) { throw new Error("Nie znaleziono pola money_account!"); } fs.writeFileSync(savePath, updated, "utf8"); console.log("Sukces! Nowy stan konta:", updated.match(/money_account:\s*\d+/)[0]); 'Krok 4: Wczytanie zapisu w grze i synchronizacja ze Steam Cloud
ETS2 bez problemu wczytuje pliki zapisu zapisane w czystym tekście (SiiNunit) – nie trzeba ich ponownie szyfrować do ScsC.
- Uruchom grę przez Steam. jeżeli pojawi się okno konfliktu synchronizacji Steam Cloud, wybierz Pliki lokalne (Prześlij do chmury), aby Steam nie nadpisał zmodyfikowanego pliku starą kopią z serwera.
- Wczytaj manualnie edytowany zapis. W menu głównym gry wejdź w Zapisz i wczytaj -> Wczytaj grę i wybierz konkretny slot (np. najnowszy Autosave), który modyfikowałeś.
- Posprzątaj pliki tymczasowe. Gdy potwierdzisz w grze, iż 2 000 000 € pojawiło się na koncie, utwórz nowy standardowy zapis z poziomu gry, a następnie usuń katalog /tmp/ets2_dec oraz kopię game.sii.bak.
Kilka słów na koniec
Cała ta operacja dobrze pokazuje, jak bardzo pod maską zmieniły się zapisy w grach SCS Software. Kiedyś wystarczyło dopisać jedną linijkę w config.cfg i otworzyć plik w dowolnym edytorze – dziś, przy wielowarstwowym formacie (ScsC + BSII) oraz agresywnej synchronizacji Steam Cloud w userdata, prosta edycja zamienia się w małą sesję inżynierii wstecznej.
Warto też zachować umiar z samą kwotą. Wpisanie na konto astronomicznych 50 czy 100 milionów euro na starcie potrafi błyskawicznie zabić sens rozgrywki – rozbudowa garaży, spłata kredytów czy dobieranie bardziej opłacalnych tras przestają mieć jakiekolwiek znaczenie. Zastrzyk rzędu 2 milionów euro to złoty środek: pozwala od razu kupić wymarzoną ciężarówkę (albo autokar z DLC Coaches), rozbudować pierwszą bazę i zatrudnić kierowców, ale przez cały czas zostawia motywację do kręcenia kolejnych kilometrów po Europie.
Dodatkowo, to gra na Steam, ale nie tak dawno – GOG ogłosił GOG Galaxy na Linux. Warto sprawdzić, co pisałem przed ogłoszeniem!

14 godzin temu















