Notatki operatora
Geyser: jak połączyć graczy Bedrock z serwerem Java Minecraft
Praktyczny przewodnik po Geyserze: od tego, jaki problem rozwiązuje (gracze z telefonu i konsoli na serwerze Java), przez tłumaczenie protokołu i rolę Floodgate, po instalację jako plugin na Paper albo standalone na proxy, porty, config.yml i najczęstsze problemy. Z perspektywy kogoś, kto już raz tłumaczył znajomemu na telefonie, czemu „serwer się nie wyświetla”.
W skrócie: Geyser to most między światem Bedrock a serwerem Java. Tłumaczy ruch sieciowy w locie, dzięki czemu gracze z telefonu, konsoli i Windows 10 mogą wejść na zwykły serwer Java, na którym grają znajomi z PC. Do tego dochodzi Floodgate, który pozwala tym graczom zalogować się bez konta Java (Microsoft/Mojang). Geyser instalujesz jako plugin na Paper/Spigot albo jako standalone na proxy Velocity/BungeeCord. Trzeba otworzyć dwa porty: Java 25565 TCP i Bedrock 19132 UDP. Większość problemów to zamknięty port UDP albo zapomniany Floodgate.
Jaki problem rozwiązuje Geyser
Minecraft istnieje w dwóch wydaniach, które przez lata żyły osobno. Java Edition to wersja na PC, ta z największą sceną pluginów i modów. Bedrock to wszystko inne: telefony, tablety, konsole (Xbox, PlayStation, Switch) oraz aplikacja na Windows 10/11. Problem polega na tym, że te dwa wydania mówią innym językiem sieciowym. Gracz Bedrock z telefonu nie wejdzie na serwer Java, choćby bardzo chciał, bo jego klient po prostu nie rozumie protokołu, którym serwer się posługuje.
W praktyce wygląda to tak: kolega gra na PC w Javie, postawiliście wspólny serwer survival, a brat chce dołączyć ze Switcha albo z telefonu. Bez dodatkowego rozwiązania to się nie uda, bo on ma Bedrock, a serwer mówi po Javowemu. Geyser jest właśnie tym brakującym tłumaczem. Dzięki niemu jeden serwer Java obsługuje obie ekipy naraz, bez utrzymywania dwóch oddzielnych światów i dwóch oddzielnych serwerów.
To rozwiązanie ceni się przede wszystkim tam, gdzie ekipa jest mieszana: część gra na komputerze, część na sprzęcie mobilnym albo konsoli. Zamiast zmuszać wszystkich do jednego wydania, stawiasz serwer Java (bo to on ma pluginy) i dokładasz Geysera, żeby wpuścić resztę.
Jak to działa: tłumaczenie protokołu
Sercem Geysera jest tłumaczenie protokołu w czasie rzeczywistym. Klient Bedrock i serwer Java wymieniają dane w innym formacie: inaczej kodują pakiety ruchu, inaczej opisują bloki, ekwipunek czy czat. Geyser siedzi pośrodku i w locie przekłada każdy pakiet z jednej strony na drugą. Z punktu widzenia gracza Bedrock łączy się on z normalnym serwerem Bedrock, a z punktu widzenia serwera Java widzi on po prostu kolejnego gracza Java. Żadna ze stron nie wie, że rozmawia przez tłumacza.
Dlatego po stronie gracza Bedrock nie trzeba niczego instalować. On dodaje serwer w grze, podaje adres i port Bedrock, i wchodzi. Cała robota dzieje się po stronie serwera, gdzie działa Geyser. To ważna różnica wobec rozwiązań typu mod, które wymagałyby ingerencji u każdego gracza z osobna.
Tłumaczenie ma jednak swoją cenę: nie wszystko da się przełożyć idealnie, bo Bedrock i Java różnią się nie tylko siecią, ale i tym, co klient potrafi wyświetlić. Do ograniczeń wrócę w osobnej sekcji, bo to częsty powód rozczarowań „przecież miało działać tak samo”.
Geyser i Floodgate: dlaczego potrzebujesz obu
Tu zaczyna się część, w której najwięcej osób się gubi. Geyser rozwiązuje transport, ale nie rozwiązuje logowania. To dwa różne problemy i odpowiadają za nie dwa różne komponenty.
Serwer Java w domyślnym trybie online-mode: true weryfikuje każdego gracza w systemie kont Mojang/Microsoft. Gracz Bedrock z konsoli czy telefonu ma konto Bedrock, a nie Java, więc taka weryfikacja musiałaby go odrzucić. Geyser potrafi przepuścić jego ruch, ale nie potrafi udawać, że to konto Java. I tu wchodzi Floodgate.
Floodgate to drugi plugin, który pozwala graczom Bedrock dołączyć bez posiadania konta Java, jednocześnie zostawiając serwer w trybie online-mode dla graczy Java. To najlepsze z obu światów: gracze PC dalej są weryfikowani normalnie (bezpiecznie), a gracze Bedrock wchodzą na podstawie swojej tożsamości Bedrock, którą Floodgate przekłada na coś, co serwer akceptuje. Bez Floodgate masz dwie złe opcje: albo wyłączasz online-mode dla całego serwera (co otwiera drzwi oszustom podszywającym się pod nicki), albo gracze Bedrock w ogóle nie wejdą.
Zapamiętaj prosty podział: Geyser to most, Floodgate to przepustka. Most pozwala dojechać, przepustka pozwala wejść.
| Komponent | Za co odpowiada | Czy obowiązkowy |
|---|---|---|
| Geyser | Tłumaczenie protokołu Bedrock na Java, czyli sam fakt, że gracz mobilny lub konsolowy widzi serwer i może wejść. | Tak, bez niego Bedrock nie wejdzie w ogóle. |
| Floodgate | Logowanie graczy Bedrock bez konta Java, przy zachowaniu online-mode dla graczy Java. | Praktycznie tak, jeśli chcesz trzymać serwer w trybie online (zalecane). |
Instalacja
Geyser występuje w kilku wariantach i pierwsza decyzja to wybór właściwego, zależnie od tego, jak masz poukładany serwer.
Jako plugin na Paper / Spigot
To najprostszy i najczęstszy scenariusz dla pojedynczego serwera. Pobierasz build Geyser-Spigot ze strony projektu, wrzucasz plik .jar do katalogu plugins i restartujesz serwer. Do tego dokładasz build Floodgate-Spigot, też do plugins. Przy pierwszym starcie oba pluginy tworzą swoje pliki konfiguracyjne i od razu zaczynają nasłuchiwać. Sprawdź log startowy: powinien pojawić się komunikat, że Geyser nasłuchuje na porcie Bedrock.
Jako standalone na proxy Velocity / BungeeCord
Jeśli masz sieć serwerów za proxy (lobby, survival, minigry), Geysera instalujesz raz, na samym proxy, a nie na każdym backendzie. Pobierasz build pod Velocity albo BungeeCord i wrzucasz go do katalogu pluginów proxy. Ruch Bedrock wchodzi wtedy przez proxy, jest tłumaczony i rozdzielany na backendy tak samo jak ruch Java. Floodgate również ma osobny build na proxy, instalujesz go obok Geysera. Istnieje też tryb w pełni standalone, jako oddzielny proces niezależny od serwera gry, ale dla większości domowych i małych sieci wariant na proxy jest wygodniejszy.
Porty: dwa różne światy
To kluczowa rzecz, na której potyka się chyba każdy przy pierwszej instalacji. Serwer obsługuje teraz dwa kanały:
- Java: port 25565 TCP. Standardowy port serwera Minecraft Java, którego używają gracze z PC.
- Bedrock: port 19132 UDP. Osobny port i co ważne osobny protokół (UDP, nie TCP), na którym Geyser nasłuchuje ruchu Bedrock.
Oba muszą być otwarte w zaporze i, jeśli hostujesz w domu, przekierowane na routerze. Przekierowanie samego 25565 to najczęstszy błąd: Java działa, więc wydaje się, że wszystko gra, a gracze Bedrock dalej nie mogą wejść, bo ich port 19132 UDP jest zamknięty. Więcej o samym przekierowaniu znajdziesz w naszych notatkach o port forwardingu.
Konfiguracja: config.yml
Najważniejsze ustawienia Geysera siedzą w pliku config.yml w katalogu pluginu. Dla typowego serwera survival z Floodgate nie trzeba grzebać w wielu opcjach, ale kilka warto rozumieć:
- bedrock: port. Port, na którym Geyser nasłuchuje ruchu Bedrock. Domyślnie 19132. Zmieniasz go tylko wtedy, gdy ten port jest zajęty albo świadomie chcesz inny.
- remote: address i port. Adres i port serwera Java, do którego Geyser przekazuje ruch. Przy pluginie na tym samym serwerze zostaje to na auto/localhost. Przy standalone wskazujesz tu właściwy backend.
- remote: auth-type. Najważniejsza opcja przy współpracy z Floodgate. Ustawiasz ją na
floodgate, żeby gracze Bedrock logowali się przez Floodgate bez konta Java. Wartośćonlinewymagałaby od każdego gracza Bedrock posiadania konta Java, aofflinewyłącza weryfikację (niezalecane). - username-prefix. Prefiks doklejany do nicków graczy Bedrock, domyślnie kropka, np.
.Steve. Dzięki niemu od razu widać, kto wszedł z Bedrock, i unika się kolizji nicków z graczami Java.
Po stronie Floodgate najważniejsze jest, żeby auth-type w Geyserze i tryb Floodgate były spójne, oraz żeby klucz Floodgate (plik wymiany danych między pluginami) był ten sam po obu stronach. W sieci za proxy klucz musi się zgadzać między proxy a backendami.
Z doświadczenia: zostaw prefiks nicków Bedrock włączony, nawet jeśli wygląda nieładnie. Ten jeden znak przed nazwą ratuje przed sytuacją, w której gracz Bedrock o nicku Steve i gracz Java o nicku Steve walczą o ten sam ekwipunek i te same uprawnienia. Przy serwerze z ekonomią albo działkami kolizja nicków potrafi narobić bałaganu, którego nie da się łatwo cofnąć.
Ograniczenia, o których warto wiedzieć
Geyser robi kawał świetnej roboty, ale to most, nie magia. Część rzeczy z natury nie przejdzie idealnie, bo Bedrock i Java różnią się nie tylko siecią, ale i możliwościami klienta:
- Formularze i interfejsy. Złożone GUI oparte na inwentarzu Java (np. menu sklepów, kreatory z klikalnymi ikonami) bywają na Bedrock uproszczone albo zamieniane na natywne formularze Bedrock. Część działa świetnie, część wygląda inaczej, a niektóre niestandardowe okna mogą nie pojawić się wcale.
- Niektóre mody i pluginy. Pluginy działające czysto po stronie serwera zwykle są w porządku. Problem mają treści zależne od klienta Java: niestandardowe modele zasobów, część efektów cząsteczkowych, mody działające tylko po stronie klienta.
- Różnice w UI i mechanice. Sterowanie, ekwipunek czy crafting wyglądają u gracza Bedrock po Bedrockowemu, bo to jego klient renderuje obraz. To nie błąd, tylko inny interfejs tej samej gry.
- Klawiatura kontra dotyk. Gracz na telefonie steruje dotykiem, gracz na PC klawiaturą i myszą. Przy konkurencyjnym PvP to realna różnica w komforcie, którą warto mieć z tyłu głowy przy projektowaniu serwera.
Praktyczna rada: do prostej, wspólnej rozgrywki survival albo kreatywnej Geyser sprawdza się znakomicie. Im bardziej serwer opiera się na rozbudowanych, klikanych interfejsach i zasobach po stronie klienta Java, tym więcej drobnych różnic zobaczą gracze Bedrock.
Typowe problemy
- Bedrock w ogóle nie widzi serwera. Prawie zawsze zamknięty port 19132 UDP. Sprawdź zaporę (musi być reguła na UDP, nie tylko TCP) i przekierowanie na routerze. Upewnij się, że w grze Bedrock podajesz port 19132, a nie 25565.
- Port 19132 UDP zablokowany przez hosting. Część dostawców domyślnie otwiera tylko port Javy. Jeśli nie masz dostępu do zapory, trzeba poprosić o otwarcie portu Bedrock na UDP albo wybrać hosting, który na to pozwala.
- Gracz Bedrock odbity przy logowaniu. Najczęściej brak Floodgate albo zła wartość
auth-type. Przyonline-mode: truebez Floodgate serwer odrzuca konta Bedrock. Zainstaluj Floodgate i ustawauth-type: floodgate. - Klucz Floodgate się nie zgadza. W sieci za proxy plik klucza musi być identyczny między proxy a backendami. Jeśli się różni, gracze Bedrock logują się przez proxy, ale wypadają przy wejściu na backend.
- Konflikt nicków Bedrock i Java. Dwóch graczy o tym samym nicku (jeden Bedrock, jeden Java) to recepta na bałagan z uprawnieniami i ekwipunkiem. Zostaw włączony prefiks nicków Bedrock, żeby ich rozróżniać.
- Bedrock widzi serwer, ale ma starszą lub nowszą wersję. Geyser celuje w konkretną parę wersji Bedrock i Java. Po dużej aktualizacji jednej ze stron zaktualizuj Geysera, inaczej gracze dostaną komunikat o niezgodności wersji.
Jeśli prowadzisz pojedynczy serwer i nie chcesz samodzielnie pilnować Javy, portów i wersji pluginów przy każdej aktualizacji, gotowy zarządzany hosting Minecrafta (Java) z obsługą pluginów pozwala wgrać Geysera i Floodgate przez panel i menedżer plików, bez konfigurowania zapory i portów od zera.
Najczęstsze pytania
Czy gracze Bedrock muszą coś instalować, żeby wejść przez Geyser?
Nie. Cała robota dzieje się po stronie serwera. Gracz Bedrock dodaje serwer w grze, podaje adres i port Bedrock (domyślnie 19132 UDP) i łączy się jak z każdym innym serwerem Bedrock. Żadnego pluginu ani moda u siebie nie instaluje.
Czym różni się Geyser od Floodgate?
Geyser tłumaczy protokół, czyli pozwala graczowi Bedrock w ogóle zobaczyć serwer Java i na niego wejść. Floodgate rozwiązuje logowanie: pozwala mu dołączyć bez konta Java, przy zachowaniu online-mode dla graczy Java. Geyser to most, Floodgate to przepustka.
Bedrock nie łączy się, choć Java działa. Co sprawdzić?
Najpierw port. Java to 25565 TCP, Bedrock to 19132 UDP, inny port i inny protokół. Sprawdź, czy 19132 jest otwarty na UDP w zaporze i przekierowany na routerze, oraz czy w grze podajesz właśnie ten port. Zerknij też w log, czy Geyser wstał.
Czy Geyser daje pełną zgodność modów i pluginów?
Nie i nie jest to jego celem. Czysta rozgrywka działa świetnie, ale treści zależne od klienta Java (niestandardowe modele, część GUI, efekty po stronie klienta) mogą wyglądać inaczej albo nie działać. Pluginy czysto serwerowe zwykle są w porządku.
Czy Geyser muszę instalować na każdym serwerze w sieci za proxy?
Nie. W sieci za Velocity lub BungeeCord Geysera instalujesz raz, na proxy. Ruch Bedrock wchodzi przez proxy i jest rozdzielany na backendy. Floodgate też ma build na proxy.