Windrose: jak postawić dedykowany serwer — instalacja Steam, SteamCMD, Docker i ustawienia poziomu trudności
Źródło: Playnews
Pełny poradnik

Windrose: jak postawić dedykowany serwer — instalacja Steam, SteamCMD, Docker i ustawienia poziomu trudności

Fabian Fabian Lainé
Obserwuj nas na

W skrócie

Windrose oferuje darmowy i dobrze wyposażony dedykowany serwer, dzięki któremu wasza załoga pozostanie zgrana w okresie posuchy przed Ashlands. Między instalacją SteamCMD, Dockerem pod Linuksem a ustawieniami trudności, oto jak zamienić wasz świat w działającą 24/7 trwałą instancję.

Windrose przechodzi przez swój pierwszy prawdziwy okres posuchy. Ostatnia poprawka, wersja 0.10.0.8, sięga 8 lipca 2026 roku i mieściła się w trzech linijkach: pociski przenikające przez kadłuby na dużym dystansie, ulepszona lokalizacja japońska oraz znany błąd dotyczący żagli przednich. Co do Ashlands, pierwszej dużej aktualizacji zawartości, Kraken Express uprzedziło już 28 kwietnia, że zajmie ona „co najmniej sześć miesięcy” pracy, a dziennik dewelopera z 1 lipca wciąż nie podał żadnego okna wydania.

Innymi słowy: aż do jesieni to, co utrzyma waszą rozgrywkę przy życiu, to wasza załoga. A najbardziej niezawodnym sposobem na utrzymanie zgranej grupy w survivalu, który przekroczył dwa miliony sprzedanych egzemplarzy, jest serwer dedykowany: świat działający nieprzerwanie, do którego każdy łączy się, kiedy chce, bez uzależnienia od dostępności hosta. Narzędzie jest darmowe, jest już dołączone do gry, a od patcha 0.10.0.7 z 25 czerwca działa też pod Linuksem dzięki oficjalnemu obrazowi Docker.

Ostrzeżenie dotyczące słownictwa, zanim zaczniemy: klient Windrose jest przetłumaczony na francuski (interfejs i napisy), ale cała część serwerowa pozostaje w języku angielskim. Klucze plików konfiguracyjnych, podręcznik DedicatedServer.md dołączony do narzędzia oraz dokumentacja online nie mają żadnej wersji francuskiej: nazwy pól cytowane poniżej należy zapisywać dokładnie tak, jak są podane.

Pobranie serwera: trzy drogi i jeden klasyczny błąd

Serwer dedykowany Windrose to samodzielny, darmowy plik wykonywalny, który nie wymaga posiadania gry na maszynie hosta. Trzy sposoby jego zdobycia, wszystkie równoważne:

  • Z plików gry: otwórzcie folder instalacyjny, następnie R5\Builds. Podfolder WindroseServer (lub WindowsServer na Epic Games Store i Stove) to serwer.
  • Z narzędzia Steam: w bibliotece przełączcie filtr kategorii na „Narzędzia”, wyszukajcie Windrose Dedicated Server i zainstalujcie go jak grę. To najprostszy sposób na utrzymanie go w aktualnej wersji.
  • Przez SteamCMD: metoda zalecana dla maszyny bez interfejsu graficznego, zdalnego serwera lub automatyzacji.

Błąd, który każdy popełnia za pierwszym razem: uruchomienie serwera z folderu gry. To nie zadziała. Folder obecny w instalacji pełni wewnętrzną rolę po stronie klienta, a klient przerwie proces, gdy tylko zobaczy, że działa. Skopiujcie go najpierw w inne miejsce na dysku, poza strukturą folderów gry, i pracujcie na tej kopii.

Dla SteamCMD identyfikator aplikacji serwera to 4129620 (sama gra nosi numer 3041230). Sekwencja mieści się w czterech poleceniach:

  • force_install_dir "C:\Game_Servers\Windrose_Server"
  • login anonymous
  • app_update 4129620 validate
  • quit

Anonimowe logowanie wystarczy: żadna licencja nie jest wymagana do zainstalowania serwera. Aby zaktualizować go później, wystarczy ponownie uruchomić app_update 4129620 validate, które pobierze tylko zmodyfikowane pliki.

Pierwsze uruchomienie i kod zaproszenia

W folderze współistnieją dwa pliki wykonywalne. StartServerForeground.bat otwiera konsolę, w której przewijają się dzienniki: to preferowany sposób uruchamiania, choćby po to, by zdiagnozować awarię, a zamknięcie okna zatrzymuje serwer. WindroseServer.exe uruchamia proces w tle, bez widocznej informacji zwrotnej, i trzeba będzie skorzystać z menedżera zadań, aby go zakończyć.

Przy pierwszym uruchomieniu serwer sam generuje swoje pliki konfiguracyjne i wyświetla w konsoli ośmioznakowy kod zaproszenia, w rodzaju f1014dc1. Jeśli linijka przewinęła się zbyt szybko, można go odnaleźć w pliku R5\ServerDescription.json. Wystarczy wkleić go w ekran łączenia z serwerem po stronie klienta, a następnie przekazać swojej załodze.

Obóz gracza w Windrose z kilkoma zwerbowanymi NPC
Serwer dedykowany utrzymuje obóz, NPC-ów i produkcję online nawet wtedy, gdy nikt nie jest podłączony. Źródło: Kraken Express.

ServerDescription.json: pola, które naprawdę się liczą

Ten pojedynczy plik, znajdujący się w katalogu głównym aplikacji, steruje samym serwerem. Zasada bezwzględna: modyfikujcie go wyłącznie przy wyłączonym serwerze, w przeciwnym razie wasze wartości zostaną nadpisane.

PoleRola
InviteCodeMinimum sześć znaków, wyłącznie cyfry i litery, z uwzględnieniem wielkości liter.
IsPasswordProtected / PasswordMuszą pozostać spójne: true z ustawionym hasłem, false z pustym polem. W przeciwnym razie pojawiają się nieprzewidywalne zachowania.
WorldIslandIdIdentyfikator świata wczytywanego przy starcie. Pole do zmiany przy przełączaniu się między kilkoma światami.
MaxPlayerCountDozwolona liczba jednoczesnych graczy. Wartość domyślna: 4.
UserSelectedRegionSEA, CIS lub EU (obejmujący Europę i Amerykę Północną). Puste pole oznacza, że serwer wybiera region na podstawie opóźnień.
UseDirectConnectionfalse: protokół ICE oraz usługi łączności wydawcy. true: serwer otwiera własne gniazda (sockety).
DirectConnectionServerPortPort połączenia bezpośredniego, domyślnie 7777, do otwarcia zarówno w TCP, jak i w UDP.
AutoLoadLatestBackupIfHasBrokenPozostawić na true: automatyczne przywracanie z nienaruszonej kopii, jeśli plik jest uszkodzony.
CanLaunchMultipleServerInstancesPozostawić na false. Dwie instancje na tej samej bazie danych to pewna korupcja danych.

Dwóch pól nigdy nie należy ruszać: PersistentServerId, unikalnego identyfikatora instancji, oraz DirectConnectionServerAddress, zarezerwowanego do przyszłego użytku.

Bezpośrednie IP: kiedy i jak

Domyślnie Windrose opiera się na własnych serwerach łączności i przydziela porty dynamicznie, poprzez przechodzenie przez NAT, co zakłada router z aktywnym UPnP. Ta droga zawodzi w dwóch przypadkach: gdy dostawca internetu filtruje usługi gry, lub przy samodzielnie zarządzanym hostingu za opornym routerem. Połączenie przez bezpośrednie IP, dodane w połowie kwietnia, służy jako rozwiązanie zapasowe. W sieci lokalnej nie wymaga ani publicznego IP, ani przekierowania portów: host przekazuje swój lokalny adres i port, na przykład 192.168.1.100:7777.

W internecie potrzebne jest publiczne IP — niektórzy dostawcy fakturują je jako opcję — oraz przekierowanie zarówno w TCP, jak i w UDP z routera na maszynę hosta, na przykład z 203.0.113.25:17777 na 192.168.1.100:7777. Uwaga, przy bezpośrednim IP kody zaproszeń przestają działać, a błąd hasła lub rozbieżność wersji odsyła do menu głównego bez najmniejszego komunikatu. Jeśli nic nie działa: sprawdźcie adres maszyny za pomocą ipconfig, zrezygnujcie z portu 7777 na rzecz wyższego i mniej obleganego portu (17777, 27890, dowolny wolny port poniżej 65000), tymczasowo wyłączcie zaporę sieciową i antywirus, i odczekajcie, aż serwer zakończy uruchamianie, zanim podejmiecie pierwszą próbę.

Linux i Docker: oficjalna droga od 25 czerwca

To punkt, którego dokumentacja online jeszcze nie uwzględniła: zaktualizowane 18 maja FAQ nadal odpowiada „tylko Windows” w kwestii wsparcia dla Linuksa. Patch 0.10.0.7, wydany 25 czerwca 2026, dodał jednak obrazy Dockera z obsługą serwera Linux, a instrukcje zostały dostarczone w pliku DedicatedServer.md dołączonym do katalogu głównego serwera. Publiczny obraz windroseserver/windroseserver został zresztą odświeżony 8 lipca, w zgodzie z wersją 0.10.0.8.

Zasada działania: pobrać obraz poleceniem docker pull windroseserver/windroseserver:latest, utworzyć na hoście folder przeznaczony na zapisy, umieścić w nim wcześniej przygotowany plik ServerDescription.json, a następnie uruchomić kontener na koncie użytkownika ue_user z portem 7777 wystawionym w TCP i UDP, przy czym folder Saved oraz plik konfiguracyjny są montowane jako wolumeny. Dwie wartości w pliku są obowiązkowe: UseDirectConnection ustawione na true oraz DirectConnectionServerPort ustawione na 7777. Do kontenera nie dołącza się więc za pomocą kodu zaproszenia, lecz bezpośrednio po adresie IP, na adresie przypisanym kontenerowi (127.0.0.1:7777 w przypadku testu lokalnego). Jeśli ścieżka do folderu zapisów zawiera spacje, ujmij ją w cudzysłów w poleceniu.

Jeśli chodzi o wymagania sprzętowe, wydawca podaje skromne zalecenia: 8 GB pamięci RAM i 35 GB przestrzeni SSD dla dwóch graczy, 12 GB dla czterech, 16 GB dla dziesięciu, na dwóch rdzeniach taktowanych 3,2 GHz. Jeśli hostujesz i grasz na tej samej maszynie, licz w sumie 24 GB, czyli 16 GB dla klienta i dodatkowe 8 GB dla serwera.

Regulacja poziomu trudności: rzeczywiste liczby trzech predefiniowanych ustawień

To najbardziej niedoceniana zaleta serwera dedykowanego. Każdy świat posiada własny plik WorldDescription.json, umieszczony w R5/Saved/SaveProfiles/Default/RocksDB_v2/<wersja>/Worlds/<identyfikator świata>/, a plik ten ujawnia wprost, co kryje się za predefiniowanymi ustawieniami proponowanymi przy tworzeniu rozgrywki.

ParametrEasyMediumHard
MobHealthMultiplier0,71,01,5
MobDamageMultiplier0,61,01,25
ShipsHealthMultiplier0,71,01,5
ShipsDamageMultiplier0,61,01,25
BoardingDifficultyMultiplier0,71,01,5
CombatDifficultyEasyNormalHard

Dwa wnioski. Po pierwsze, różnica między Medium a Hard jest asymetryczna: przeciwnicy wytrzymują o 50% więcej, ale zadają obrażenia tylko o 25% większe. Przejście na poziom trudny wydłuża więc przede wszystkim czas trwania walk, zamiast czynić je bardziej dotkliwymi. Jeśli szukasz napięcia zamiast znużenia, podnieś MobDamageMultiplier do 1,5 lub 1,75, pozostawiając zdrowie na poziomie 1,0 — dopuszczalny zakres dla obu tych mnożników wynosi od 0,2 do 5,0. Po drugie, BoardingDifficultyMultiplier nie wpływa ani na obrażenia, ani na punkty zdrowia: określa liczbę wrogich marynarzy, których trzeba pokonać, aby wygrać abordaż. To dźwignia, którą warto obniżyć, jeśli abordaże wydają się długie, choć niekoniecznie trudne.

Dwa najciekawsze parametry dotyczą skalowania trudności w trybie kooperacji. Coop.StatsCorrectionModifier, domyślnie ustawiony na 1,0, dostosowuje punkty życia przeciwników oraz tempo, w jakim tracą oni postawę, w zależności od liczby podłączonych graczy. Jednak Coop.ShipStatsCorrectionModifier wynosi domyślnie 0,0: wrogie statki w ogóle nie wzmacniają się wraz ze wzrostem liczebności waszej załogi. To mechaniczne wytłumaczenie wrażenia, że walki morskie tracą sens przy trzech lub czterech graczach, podczas gdy starcia na lądzie pozostają do ogarnięcia. Podniesienie tej wartości do przedziału między 0,5 a 1,0 równoważy morze, nie wpływając przy tym na ląd.

Ostatnie ustawienie, które warto znać: EasyExplore. Jego nazwa jest myląca, to pozostałość po starszych wersjach. Ustawiony na true, wyłącza znaczniki na mapie sygnalizujące miejsca warte odwiedzenia, przez co eksploracja staje się bardziej wymagająca. W samej grze opcja ta widnieje pod nazwą eksploracja immersyjna.

Eksploracja biomu wzgórz w Windrose
Po włączeniu parametr EasyExplore usuwa z mapy znaczniki miejsc warte odwiedzenia. Źródło: Kraken Express.

Sama modyfikacja tego pliku nie wystarczy: trzeba jeszcze zatwierdzić zmiany. Przy wyłączonym serwerze otwieramy wiersz poleceń w katalogu głównym serwera i uruchamiamy R5WorldDescriptionUpdater.exe, podając mu pełną ścieżkę do odpowiedniego pliku WorldDescription.json. Bez tego kroku wasze wartości nie zostaną uwzględnione przy ponownym uruchomieniu.

Przeniesienie gry z trybu solo na serwer

Nic nie zmusza was do zaczynania od zera. Zakładając, że wszystko jest wcześniej wyłączone i zapisane, transfer sprowadza się do czterech kroków.

  • Odnajdźcie swój świat w folderze %localappdata%\R5\Saved\SaveProfiles\<wasz profil>\. W zależności od tego, czy migracja formatu miała miejsce, czy nie, znajduje się on w folderze RocksDB (stary format, sprzed wersji 0.10.0.5.120) lub w RocksDB_v2_Backups. Folder RocksDB_v2 służy natomiast do działania w czasie rzeczywistym: nie należy go ruszać.
  • Skopiujcie cały folder noszący identyfikator świata.
  • Wklejcie go do folderu Worlds serwera, znajdującego się w R5\Saved\SaveProfiles\Default\, w podfolderze odpowiadającym wersji gry.
  • Wpiszcie WorldIslandId w pliku ServerDescription.json, podając dokładną nazwę skopiowanego folderu.

Nigdy nie zmieniajcie nazwy folderu świata: baza danych opiera się na tych identyfikatorach. A jeśli Steam zaproponuje wam wybór między zapisem lokalnym a zapisem w chmurze, zawsze wybierajcie ten lokalny — chmura Steam spowodowała już kilka fal uszkodzonych zapisów od momentu premiery, do tego stopnia, że studio musiało dodać system automatycznych kopii zapasowych.

Pułapka numer jeden: rozbieżność wersji

Kraken Express kładzie na ten punkt większy nacisk niż na jakikolwiek inny, i słusznie: wersja serwera musi dokładnie odpowiadać wersji klienta. Rozbieżność nie zawsze objawia się wyraźną odmową połączenia; wywołuje też rozproszone błędy, trudne do powiązania z ich przyczyną. Odruch, który warto wyrobić sobie po każdej aktualizacji, nawet najdrobniejszej, to ponowne uruchomienie app_update 4129620 validate lub pobranie folderu serwera z nowej instalacji, a następnie umieszczenie zawartości starego folderu R5\Saved w nowym.

Przy tempie poprawek, które stało się powolne — zaledwie trzy między 18 maja a 8 lipca — utrzymanie serwera pozostaje lekkie. To zresztą decydujący argument na rzecz serwera dedykowanego w tym momencie: skonfigurowany porządnie raz, wytrzyma bez interwencji aż do Ashlands, a wspólny świat, który żyje nieprzerwanie, pozostaje najlepszym powodem, by ponownie otworzyć Windrose w miesiące oczekiwania. Skorzystajcie z okazji, by podnieść poziom trudności i naprawić morską nierównowagę trybu kooperacji: to nowa zawartość bez konieczności czekania na choćby jedną linijkę notatek patcha.

Udostępnij ten artykuł

Jak hostujecie swój serwer Windrose?

Najczęstsze pytania

Czy naprawdę trzeba posiadać Windrose, żeby uruchomić dedykowany serwer?
Nie, to główna zaleta. Serwer to samodzielny plik wykonywalny dostarczany za darmo wraz z grą lub do pobrania przez SteamCMD, bez konieczności posiadania jakiejkolwiek licencji.
Dlaczego mój serwer się crashuje, gdy uruchamiam go z folderu gry?
Ponieważ klient Windrose wykrywa proces serwera w swojej strukturze katalogów i automatycznie go wyłącza. Musicie skopiować folder WindroseServer gdzie indziej na dysku, całkowicie poza katalogiem instalacyjnym.
Jakiego identyfikatora aplikacji użyć w SteamCMD?
4129620 dla dedykowanego serwera. Sama gra ma numer 3041230. Do aktualizacji wystarczy jedna komenda: app_update 4129620 validate.
Jak to działa konkretnie pod Linuksem?
Pobierzcie obraz Docker windroseserver/windroseserver:latest, przygotujcie plik ServerDescription.json na waszym hoście z UseDirectConnection ustawionym na true, a następnie uruchomcie kontener z odpowiednio zamontowanymi wolumenami. Wszystkie szczegóły znajdziecie w pliku DedicatedServer.md dostarczanym z serwerem.
Czy bezpośrednie połączenie po IP jest naprawdę lepsze niż kody zaproszeń?
Tylko jeśli wasz NAT lub dostawca internetu psuje domyślny tryb. Wymaga publicznego IP i przekierowania portów, ale omija 90% problemów z łącznością. Z drugiej strony zapomnijcie o kodach zaproszeń, a komunikaty o błędach stają się nieme.

Najważniejsze informacje

  • Dedykowany serwer jest darmowy, samodzielny i nie wymaga posiadania Windrose na maszynie hosta.
  • Nigdy nie uruchamiaj serwera z folderu gry: skopiuj go najpierw gdzie indziej, bo inaczej klient natychmiast go wyłączy.
  • ServerDescription.json to wasze absolutne centrum kontroli: zawsze modyfikujcie go przy wyłączonym serwerze, w przeciwnym razie wasze zmiany zostaną nadpisane.
  • Bezpośrednie połączenie po IP ratuje sytuację, gdy NAT/UPnP sprawia problemy, ale usuwa kody zaproszeń.
  • Docker działa oficjalnie od patcha 0.10.0.7, z obrazem odświeżanym przy każdej większej aktualizacji.

Komentarze

Brak komentarzy. Bądź pierwszy i zabierz głos!

Dodaj komentarz

Najnowsze artykuły