SYSTEM PRZEDMIOTÓW I LOOTU Przedmioty: Weapon, Shield, Hull, Generator, Extension. Baza typów znajduje się w resources/items, generator w scripts/items/item_generator.gd. Poziom przedmiotu = GameState.system_level (1–1000; aktualny poziom układu). Cecha główna modułów i regeneracja generatora: baza * (1 + 0.05 * (L - 1)) * losowe 0.8–1.2. Definicje bazowe pozostają wspólne i nie są zmieniane; wylosowane wartości zapisuje ItemInstance. Każdy drop ma 1–5 różnych addonów z bazy zasobów affix_database.tres. Liczba addonów zwykłego dropu: 1=50%, 2=25%, 3=14%, 4=8%, 5=3%. Elite dostaje jeden addon więcej (maks. 5), Boss co najmniej 4. Rzadkość wg liczby addonów: zwykły, niepospolity, rzadki, epicki, legendarny. Zakresy addonów interpolują liniowo między poziomem 1 a 1000 wg concept_game.txt. Cap dotyczy pojedynczego addonu; bonusy zamontowanych przedmiotów sumują się. Po zniszczeniu wroga: Normal 65%, Elite 90%, Boss 100% szansy na jeden przedmiot. Typ wroga ustawia loot_tier; generator układu dobiera skład zależnie od poziomu. Drop pozostaje na mapie, przyciąga się z 150 px i zbiera do wolnego slotu z 48 px. Pełna ładownia: drop czeka i pokazuje komunikat. Zniszczony gracz nie zbiera lootu. Niezebrany loot znika przy restarcie poziomu. Zebrane przedmioty zachowują wszystkie wylosowane wartości, addony, poziomy i rozmieszczenie po śmierci gracza. Addony działają wyłącznie w zamontowanej broni/modułach. Procenty kadłuba, tarcz i prędkości mnożą bazę powiększoną o bonusy płaskie. Bonus obrażeń działa na obie bronie (także laser i rakiety). Regeneracja dodaje punkty na sekundę. EXP i kredyty mają obliczone mnożniki statku i zwiększają nagrody kapitana za zniszczonego wroga. Bonusy działają wyłącznie po zamontowaniu przedmiotu. UI: kolor przedmiotu wskazuje rzadkość. Najechanie na slot pokazuje pełne parametry, poziom, rzadkość, addony i parametry broni. Przenoszenie nadal odbywa się drag/drop. Małe × w zajętym slocie magazynu usuwa przedmiot natychmiast, bez przesuwania pozostałych slotów. Przedmioty zamontowane nie mają przycisku usuwania. EDYCJA BAZY CECH (ADDONÓW) Katalog bazy: resources/items/affix_database.tres. Definicje poszczególnych cech: resources/items/affixes/*.tres. Klasa pól i reguł: scripts/items/item_affix_definition.gd. Losowanie ważone i kontrola zgodności: scripts/items/item_affix_database.gd. W Godocie wybierz plik cechy .tres w FileSystem i edytuj go w Inspectorze: - affix_id: unikalny identyfikator cechy. - display_name, description, unit: nazwa, opis, jednostka. - stat_key: identyfikator efektu obsługiwanego przez statek/bronie. - enabled: włącza lub wyłącza przyszłe losowanie cechy. - selection_weight: względna waga losowania (2 = dwa razy większa waga niż 1). Waga 0 wyłącza losowanie; procent szansy zależy od pozostałej dozwolonej puli. - category_mask: zaznacz dozwolone Weapon, Shield, Hull, Generator, Extension. Obecnie zaznaczone są wszystkie kategorie, zgodnie z wcześniejszą pulą ogólną. - allowed_item_ids: pusta lista dopuszcza wszystkie itemy dozwolonych kategorii; wpisana lista dopuszcza tylko podane item_id z bazowych resources/items/*.tres. - excluded_item_ids: zawsze wyklucza wskazane itemy. - minimum_level / maximum_level: poziomy, na których cecha może się pojawić. - minimum/maximum_value_level_1 i level_1000: zakresy dla poziomów krańcowych; między nimi generator interpoluje liniowo. Dla stałej wartości ustaw wszystkie cztery pola identycznie. - exclusive_group: puste = bez ograniczenia. Cechy o tej samej niepustej grupie nie mogą pojawić się razem na jednym przedmiocie. - incompatible_affix_ids: lista cech wykluczonych na tym samym przedmiocie. Wystarczy wpisać wykluczenie po jednej stronie. Ta sama cecha nie powtarza się. Aby dodać cechę: utwórz zasób ItemAffixDefinition, zapisz w affixes i dodaj do tablicy affixes w affix_database.tres. Sama obecność pliku w katalogu nie dodaje go do losowania. Aktualne dziesięć cech ma wagę 1 i nie ma wzajemnych wykluczeń. Nowy stat_key wymaga również implementacji efektu w kodzie; baza opisuje reguły losowania i prezentację, nie tworzy automatycznie nowych mechanik statku. Tooltip pobiera nazwę i jednostkę z definicji cechy. Wylosowana wartość pozostaje w ItemStatModifier; zmiana zakresów w bazie nie przelicza zdobytych przedmiotów. Przy zbyt małej puli zgodnych cech generator kończy losowanie wcześniej, bez duplikatów i bez pętli nieskończonej. Rzadkość wynika z faktycznej liczby addonów. Pusta dozwolona pula daje przedmiot bez addonów o rzadkości zwykłej. ZAKRES OBRAŻEŃ BRONI Każda nowa broń ma zapisane w ItemInstance damage_min / damage_max. Generator losuje dolną granicę oraz szerokość zakresu. Obie granice skaluje przez (1 + 0.05 * (L - 1)) i zaokrągla do całkowitych punktów obrażeń. Wartości dla poziomu 1 edytuje się w zasobach poszczególnych broni .tres: damage_lower_roll_min/max = zakres losowania dolnej granicy; damage_spread_roll_min/max = zakres losowania szerokości (górna = dolna + szerokość). Laser: dolna 1–4, szerokość 2–4 (możliwe m.in. 1–5 i 4–6). Plazma: dolna 10–14, szerokość 2–4. Działko maszynowe: dolna 2–4, szerokość 1–2. Rakiety: dolna 45–58, szerokość 5–12. Każdy wystrzelony pocisk i każdy trafiający impuls lasera losują obrażenia równomiernie z zakresu swojej broni, włącznie z obiema granicami. Po losowaniu naliczany jest mnożnik damage_percent z całego wyposażenia. Jedna rakieta ma jeden wynik losowania, wspólny dla trafienia i jej eksplozji. Tooltip i etykieta slotu pokazują bazowy zakres broni; bonus procentowy statku jest naliczany w walce. Zakres dropu zachowuje się po restarcie poziomu. Bronie startowe mają zakres z wartości środkowych ustawień w definicji. Starszy item z primary_value_override i bez zakresu zachowuje stałe obrażenia. UKŁADY I PRZECHODZENIE POZIOMÓW Generator: scripts/levels/system_generator.gd. Balans: scripts/levels/level_balance.gd. Nowa gra zaczyna się na poziomie 1. Poziom widoczny jest wyłącznie w debug HUD. Każdy układ ma gwiazdę w (0,0) i 1–5 planet w odległości ok. 960–1480 px. Tekstury są losowane z assets/stars/s1–s8 i assets/planets/p1–p18. Dokładnie jedna planeta ma chronioną rasę, oznaczoną podpisem i kolorową obwódką. Znacznik na HUD wskazuje kierunek do tej planety, kiedy jest poza obszarem widoku. Numer układu, liczba planet, cel, odległość i kierunek są podane w oknie debug. Stare dekoracyjne planety, boja nawigacyjna i cel testowy zniknęły z poziomu gry. Gracz zaczyna w (180,200), obok centralnej gwiazdy. Przy generowaniu wrogowie nie pojawiają się w promieniu 1200 px od gwiazdy ani bliżej niż 940 px od gracza. Jest to bezpieczny obszar startowy; aktywowany podczas walki wróg może tam dolecieć. Wrogowie powstają w skupiskach 2–5 przy planetach, z zachowaniem granic mapy, odległości od planet i minimum 110 px między jednostkami. Boss ma dwie elitarne jednostki w swoim skupisku. Końcowe skupisko może być mniejsze. Liczba wrogów interpoluje między punktami koncepcji: 1=5, 10=10, 50=18, 100=23, 250=29, 500=34, 1000=40. Poziomy 1–10: wyłącznie zwykli. Udziały Elite/Boss interpolują od 50:15%/0%, 100:25%/5%, 500:45%/10% do 1000:55%/15%. Wyniki są zaokrąglane; od 100 jest co najmniej jeden Boss, a liczba Elite gwarantuje dwie obstawy na Bossa. Kadłub i obrażenia wrogów skalują się jak loot: 1 + 0.05 * (L - 1). Elite: x2 kadłub, x1.3 obrażenia; Boss: x6 kadłub, x1.7 obrażenia i Mega_boss.png. Prędkość: 62 * (1 + 0.0005 * (L - 1)); cooldown: max(0.55, 1.5/(1+0.001*(L-1))). Po pokonaniu wszystkich wrogów chroniona planeta otwiera usługi. Przy podlocie na odległość radius_planety + 180 px menu pojawia się automatycznie. Na razie zawiera miejsce na usługi, przycisk następnego układu i powrotu do statku. Podczas wizyty statek stoi, nie strzela i nie przyjmuje obrażeń. Zamknięcie menu nie otwiera go ponownie, dopóki gracz nie opuści zasięgu i nie podleci ponownie. Następny układ: poziom +1, nowy seed, nowe planety i wrogowie, zachowany ekwipunek, poziomy itemów, addony i konfiguracja. Kadłub, tarcze i energia są uzupełnione. Nowe dropy korzystają z nowego poziomu; wcześniej zdobyte nie zmieniają statystyk. Po śmierci poziom i seed pozostają te same: układ odtwarza planety i pełny skład wrogów. Niezebrany loot znika; zebrane itemy pozostają. Maksymalny poziom to 1000; na nim menu usług działa, ale przycisk następnego poziomu jest zablokowany. KAPITAN, XP, KREDYTY I NAUKA Stan kapitana: GameState.captain (CaptainProgress), zachowany przy śmierci i zmianie układu. Nowa gra zeruje postać: poziom 1, XP 0, kredyty 0, punkty nauki 0, wszystkie umiejętności 0. Balans: scripts/captain/captain_balance.gd. Awans wymaga 100 + 50 * (poziom_kapitana - 1) XP. Nadwyżka przechodzi dalej, jedna nagroda może dać kilka awansów. Każdy awans daje 1 punkt nauki. Plus w panelu kapitana kupuje 1 poziom wybranej umiejętności za 1 punkt nauki. Umiejętności mają limit 100; nie da się wydać punktów, których postać nie ma. Nagroda za wroga (XP / kredyty): Normal 20/15, Elite 50/40, Boss 150/120. Nagrody mnożą się przez 1 + 0.05 * (poziom_układu - 1) oraz odpowiedni mnożnik EXP/kredytów wyposażenia i są zaokrąglane do całkowitych punktów. Wróg wypłaca nagrodę dokładnie raz przy zniszczeniu, niezależnie od dropu itemu. XP i kredyty są przyznawane bez konieczności podlatywania do wraku. Każdy poziom umiejętności: - Pilotaż: +1 punkt procentowy szansy na unik. Unik anuluje 100% danego trafienia, nie zabiera tarcz ani kadłuba i pokazuje napis UNIK. - Strzelec: +1% obrażeń. Mnożnik kapitana mnoży się z mnożnikiem wyposażenia. - Mechanik: -1% otrzymywanych obrażeń, po próbie uniku, przed tarczami i kadłubem. - Celne oko: +1 punkt procentowy szansy na krytyk. Pilotaż 100 = 100% uniku, Mechanik 100 = 100% redukcji. Obrażenia nigdy nie leczą. TRAFIENIA KRYTYCZNE Bazowa szansa: 0%. Szansa = Celne oko + suma critical_chance_percent z wyposażenia, ograniczona do 100%. Bazowe obrażenia krytyczne: x2. Mnożnik krytyka wynosi 2 * (1 + suma critical_damage_percent / 100), więc addon +20% daje x2.4. Losowanie odbywa się raz dla pocisku lub trafiającego impulsu lasera. Rakieta ma ten sam wynik obrażeń i krytyka dla całej eksplozji; ten sam cel nie dostaje obrażeń dwa razy. Trafienie krytyczne pokazuje wyróżniony napis KRYT!. Dwa nowe zasoby w resources/items/affixes, edytowalne jak pozostałe: critical_chance_percent: 1–2% na poziomie 1, 10–20% na poziomie 1000. critical_damage_percent: 5–10% na poziomie 1, 50–100% na poziomie 1000. Obecnie dozwolone na wszystkich kategoriach; można zmienić maskę w Inspectorze. INTERFEJS Kompaktowy panel kapitana znajduje się nad wyposażeniem statku po prawej stronie: poziom postaci, XP i pasek postępu, kredyty, punkty nauki, cztery umiejętności z plusami, łączna szansa i mnożnik krytyka. Numer układu nadal jest tylko w debug. Panel statku ma mniejszy schemat i sloty. Magazyn ma 5 kolumn i 4 wiersze, przyciski kasowania, drag/drop i pełne podpowiedzi statystyk zachowują działanie. AKTYWNE ROZSZERZENIA I CZĘŚCI Nowa kategoria ItemDefinition.Category.ACTIVE_EXTENSION (5), odrębna od starszych pasywnych rozszerzeń (4). Aktywne rozszerzenie zajmuje jeden z sześciu slotów modułów. Numer slotu przypisuje klawisz 1–6; przeniesienie modułu zmienia przypisanie. Na dole ekranu pojawia się przycisk z nazwą i klawiszem. Nieaktywny przycisk ma w podpowiedzi przyczynę (energia, pełne tarcze/kadłub, brak części). Można też kliknąć. Dopalacz, Ładowanie tarcz i Drony naprawcze są w startowym magazynie i puli łupów. Dodatkowe statystyki losują się jak na pozostałych modułach; siła aktywnej umiejętności jest ustalona przez jej zasób i nie skaluje się automatycznie z poziomem itemu. Dopalacz: wymaga pełnej energii i zużywa całą aktualną maksymalną energię. Rozpędza w kierunku przodu statku do 300% maksymalnej prędkości (+200%) w 0.3 s. Nadmiar prędkości potem maleje ze zwykłym space_drag. Hamulec nadal działa. Nie można ponownie odpalić podczas trwania dopalacza. Ładowanie tarcz: wymaga pełnej energii, zużywa ją i dodaje 100 pkt tarcz do maksimum. Drony naprawcze: bez kosztu energii, natychmiast naprawiają maksymalnie możliwy kadłub, wydając 1 część za 1 pkt. Części mogą mieć ułamkową wartość, ponieważ kadłub także ją ma. Pełne tarcze/kadłub lub brak zasobów blokują użycie bez wydawania kosztu. Umiejętności są zablokowane podczas dokowania i po zniszczeniu statku. Kliknięcie × przy przedmiocie w magazynie rozkłada go na 10 części. Pusty slot nie daje części. Licznik jest w panelu kapitana i nagłówku magazynu. Części są w CaptainProgress i pozostają przy restarcie oraz zmianie układu; nowa gra je zeruje. DODAWANIE NASTĘPNEJ UMIEJĘTNOŚCI 1. Utwórz skrypt extends ActiveAbility w scripts/abilities. Zaimplementuj unavailable_reason(ship): String (pusty tekst oznacza gotowość) oraz activate(ship). Eksportowane parametry służą do regulowania działania w Inspectorze. Zasób opisuje działanie; stan czasowy efektu trzymaj na statku, nie na współdzielonym zasobie. 2. Skopiuj np. resources/items/shield_charge.tres. W sub_resource Ability ustaw skrypt, display_name, description i jego parametry. W ItemDefinition ustaw unikalne item_id, nazwę, category = 5 i active_ability wskazujące ten zasób. 3. Dopisz preload nowego .tres do DEFINITIONS w scripts/items/item_generator.gd, aby losował się z wrogów. Opcjonalnie dodaj ścieżkę do starter_items w scripts/items/ship_inventory.gd, aby od razu był dostępny w nowej grze. 4. Załóż go w dowolnym slocie modułu. Pasek, klawisz i blokady zasobów działają automatycznie — nie trzeba dopisywać wyjątków w HUD ani obsłudze klawiatury. Maska addonów ma teraz sześć kategorii. 63 oznacza wszystkie, 32 tylko aktywne rozszerzenia. Test integracyjny: tests/abilities/active_abilities_test.tscn. MIKSER DŹWIĘKÓW BRONI Układ: res://default_bus_layout.tres (ustawiony jako domyślny w projekcie). Panel Audio Godota: Plasma, MachineGun, Laser, Missile — każda szyna ma osobny suwak głośności i własny AudioEffectEQ10. Kliknij efekt, aby edytować pasma equalizera w Inspectorze. Domyślnie pasma są neutralne (0 dB), szyny mają -6 dB i wysyłają do Master. WeaponAudio.BUS_NAMES przypisuje rodzaj broni do szyny. Głośność gracza na odtwarzaczu wynosi 0 dB, plazma wrogów -4 dB względem szyny. Zmiana szyny Plasma obejmuje oba źródła. Muzyka i inne dźwięki nie przechodzą przez szyny broni. MODELE STATKÓW Ekran wyboru pokazuje tylko grafiki 0, 2, 3, 7. Parametry bazowe są w scripts/game/ship_catalog.gd (SHIPS), wspólnym dla wyboru i kontrolera statku. Aegis (0): kadłub 100, tarcze 125, energia 100, prędkość 90 px/s. Titan (2): kadłub 125, tarcze 100, energia 100, prędkość 90 px/s. Eagle (3): kadłub 100, tarcze 100, energia 100, prędkość 108 px/s. Phantom (7): kadłub 100, tarcze 100, energia 125, prędkość 90 px/s. Bazowa regeneracja energii wszystkich modeli: 5 pkt/s. Statystyki modelu ustawiane są przed przeliczeniem wyposażenia, także przy restarcie. Brak lub nieaktualny wybór modelu powoduje użycie Aegis. Dopalacz i inne umiejętności korzystają z faktycznych maksimów, więc Phantom wydaje całą swoją energię 125 pkt. KOSZT ENERGII WYLOSOWANEJ BRONI ItemInstance.get_energy_cost() jest wspólne dla tooltipów i strzelania każdą bronią. Koszt = bazowy energy_cost * (średnie obrażenia / średnie obrażenia startowe)^0.5 * (1 + liczba addonów * 0.05), zaokrąglony do 0.1 pkt. Wyższy poziom zwiększa zakres obrażeń, a przez niego koszt. Czterokrotnie wyższe średnie obrażenia dają dwukrotny koszt przed addonami. Każdy addon dodaje 5% kosztu. Bonusy kapitana i innych zamontowanych przedmiotów nie zmieniają kosztu tego egzemplarza. Parametry energy_damage_exponent i energy_per_addon edytuje się w definicji broni. ZAPIS GRY I OPCJE (27.10.2026) - Menu główne: Kontynuuj wczytuje ostatni poprawny zapis; przy braku zapisu przycisk jest nieaktywny. Zapis rozgrywki pokazuje datę, poziom i umożliwia wczytanie. - Esc w grze: pauza, zapis ręczny, opcje, zapis i menu, zapis i wyjście. F6 otwiera okno nazwanego zapisu. Automatyczny zapis co 60 sekund poza powierzchnią, przy rozpoczęciu poziomu, powrocie z lokacji i zamykaniu okna gry. - Wczytanie zawsze zaczyna bieżący poziom od początku: punkt startowy, pełne kadłub/tarcze/energia, odnowieni przeciwnicy i eksploracja, bez cooldownów i czasowych efektów. Inne odwiedzone układy i trwały postęp są zachowane. - Zachowane są wyposażenie, amunicja, odblokowane sloty, kapitan, oferowane umiejętności, badania, załoga, fregata, magazyny, placówki i mapy wypraw. Zapis na powierzchni zachowuje bieżący łup jako zakończoną wyprawę; po wczytaniu gracz rozpoczyna poziom w kosmosie. - Pliki: user://last_game.res, user://last_game_backup.res, user://settings.cfg. Zapis przechodzi przez plik tymczasowy i kontrolny odczyt. Przy uszkodzeniu głównego pliku Kontynuuj używa poprawnej kopii zapasowej. - Opcje: głośność ogólna i muzyki, okno/pełny ekran, sześć rozdzielczości od 1024×576 do 3840×2160 (okno ograniczone do dostępnego ekranu), język. - Języki: polski, niemiecki, hiszpański, angielski i francuski. Teksty przygotowano przy użyciu AI, bez zewnętrznej usługi tłumaczącej. Lokalne katalogi zawierają 1048 tekstów, łącznie z instrukcją i opisami. Obsługiwane są też teksty składane i parametry liczbowe istniejącego interfejsu. tools/build_localization.py odtwarza katalogi offline i sprawdza znaczniki formatu. - Test integracyjny: tests/save_settings_test.tscn. Podgląd wizualny: tests/menu_options_preview.tscn; zrzuty w artifacts/menu_*.png i options_*.png. NAZWANE ZAPISY I OKNA MENU (27.10.2026) - Zapisz grę / F6 otwiera archiwum w trybie zapisu. Nazwa do 48 znaków, także ze znakami narodowymi; nazwa nie jest ścieżką pliku i nie jest tłumaczona. - Nowy zapis tworzy oddzielny slot. Wybór istniejącej karty i Nadpisz zapis aktualizuje ten slot (można też zmienić nazwę) z zachowaniem kopii zapasowej. - Wczytaj grę w menu głównym i pauzie pokazuje karty z nazwą, datą, statkiem, poziomem układu i kapitana. Panel po prawej podaje szczegóły i zasadę restartu. - Kontynuuj wybiera najnowszy poprawny zapis, ręczny lub automatyczny. Dotychczasowe last_game.res i last_game_backup.res pozostają obsługiwane. - Ręczne pliki: user://saves/slot_*.res, osobne *.backup.res i *.pending.res. Autosave nadal korzysta z last_game.res i nigdy nie nadpisuje nazwanych slotów. - Zapisz i wróć do menu / wyjdź najpierw prosi o nazwę lub wybór slotu. Anulowanie wraca do pauzy bez wykonywania wyjścia. - menu_modal.gd: wspólna responsywna warstwa z przyciemnieniem, nagłówkiem, turkusowymi obramowaniami, złotą akcją główną i przyciskiem zamknięcia/Esc. Używają jej opcje, zapis, odczyt, pauza i komunikaty. Instrukcja i hangar korzystają ze wspólnej palety oraz stylu przycisków. - Opcje: sekcje Dźwięk, Obraz i Język, Anuluj bez zmiany preferencji, Zastosuj zapisuje preferencje. Nowe teksty mają cztery dodatkowe tłumaczenia AI. - Testy: tests/named_save_test.tscn, tests/save_settings_test.tscn, tests/menu_options_preview.tscn. Podglądy: artifacts/load_pl.png, options_pl.png, named_save_en.png, menu_guide_pl.png i menu_hangar_pl.png. POI: progresja planet i podgląd wyprawy (27.10.2026) - Pierwszy poziom: łagodne planety; wyposażenie poziomu 1 odzyskuje 100% podstawowego łupu. Lądowanie kosztuje 5 HP, zwykły POI 2–4 HP. - Poziom planety zwiększa zasobność oraz trudność. Sprzęt jest porównywany z poziomem i warunkami planety; każdy rodzaj POI inaczej wykorzystuje aparat oddechowy, kombinezon i ochronę biologiczną. - E przy POI otwiera podgląd nagrody oraz przedziału uszkodzeń. Dopiero potwierdzenie wykonuje akcję. Podgląd jest stały dla danej wizyty i nie losuje ponownie łupu. - Około 25% zwykłych POI oferuje dodatkowe, jednorazowe przeszukanie: dodatkowy łup za większe uszkodzenia. Akcja wymaga osobnego przycisku. Mapa oznacza pozostałe znaleziska kolorem złotym. - Brak statystyk zagrożeń, tlenu, temperatury i mnożników w podglądzie/HUD. Przed ryzykowną akcją pojawia się ostrzeżenie o możliwym zniszczeniu lądownika. - HP równe zero kończy wyprawę i odbiera jej niezabezpieczony łup. Bezpieczny powrót zachowuje znaleziska. Samo otwarcie okna nigdy nie przyznaje nagrody ani nie zadaje obrażeń. - Instrukcja oraz nowe teksty interfejsu przetłumaczone offline na DE/ES/EN/FR. Esc zamyka ekwipunek przed otwarciem pauzy. - Wyniki i testy: artifacts/planet_exploration_validation.md, artifacts/planet_exploration_balance.json. Progresja badań (27.10.2026) - Poziom oznacza poziom kapitana. Laboratorium: projekty od poziomu 1, 4, 8, 12, 16, 20, 25 i 30; na 30 dostępna cała pula 23 projektów. Koszty surowców zachowane. - Badania obcych: progi głębokości drzewa 1, 8, 20, 40, 60 i 80. Zachowane zależności i łączny koszt 715 próbek. Końcowe technologie wymagają poziomu 80. - Laboratorium: 600 sekund bazowego czasu gry, z premią Naukowca 540/480/420 sekund. Obcy: 600 sekund. Po jednym projekcie na stanowisko; oba stanowiska mogą działać równolegle. Odkrycie aktywuje się dopiero po zakończeniu. - Zapis przechowuje identyfikator projektu, czas całkowity i dokładny czas pozostały dla obu stanowisk. LOAD nie zeruje badań, nie kończy ich automatycznie i nie nalicza czasu poza grą. Zwykła pauza zatrzymuje badania; eksploracja i dokowanie pozwalają im działać. - Nowe napisy mają tłumaczenia offline DE/ES/EN/FR. Interfejs pokazuje wymagany poziom, czas i trwający projekt. - Testy: research_progression_test (wszystkie 23+28 odkryć, progi, koszty i czas), save_settings_test (rzeczywisty SAVE/LOAD obu liczników), laboratory_test (równoległe badania, pauza, efekty odkrycia), laboratory_loot_test, new_skills_test i testy technologii obcych. Korekta zasad badań (27.10.2026) - Usunięto wszystkie progi poziomu kapitana. Od początku losowanie trzech projektów laboratorium korzysta z całej puli nieodkrytych projektów. Poziom kapitana nie wpływa na dostępność ani losowanie. - W badaniach obcych pozostały wyłącznie zależności drzewa, próbki oraz jeden aktywny projekt; brak wymagań poziomu. - Zachowano koszty, 10 minut bazowego badania, dotychczasową umiejętność Naukowiec i pełny zapis liczników. Wcześniejszy opis progów 30/80 jest nieaktualny.