ViaVersion + ViaBackwards: wsparcie wielu wersji na jednym serwerze Minecraft
Minecraft wydaje nowe wersje co pół roku, a baza graczy jest rozmyta po całym zakresie od 1.8 do najnowszej odsłony. Jedni siedzą na 1.12 z powodu serwerów pirackich, inni utknęli na 1.16.5 przez modpack, jeszcze inni czekają na optymalizacje w najnowszej wersji. Jeśli twój serwer wymusza konkretną wersję, połowa potencjalnych graczy nie wejdzie.
Via Project rozwiązuje ten problem. Trzy pluginy (ViaVersion, ViaBackwards, ViaRewind) pozwalają trzymać serwer na aktualnej 1.21 i przyjmować klientów od 1.8. To branżowy standard: Hypixel, Mineplex i praktycznie każdy duży projekt ma Via domyślnie zainstalowane.
W tym przewodniku omówimy, jak działa kompatybilność protokołowa, instalację na Paper/Velocity/BungeeCord, macierz wsparcia wersji, wpływ na wydajność i typowe błędy.
Problem różnych wersji
Protokół Minecrafta zmienia się przy każdej głównej wersji. Między 1.8 a 1.21 zmieniło się:
- format chunków (legacy chunk format do palette format od 1.13)
- system przedmiotów (numeryczne ID do namespaced strings)
- struktury NBT dla encji i tile entity
- pakiety protokołu sieciowego (nowe ID, nowe pola, usunięte pakiety)
- mechanika walki (1.8 bez cooldownu, 1.9+ z attack cooldownem)
- rejestr wymiarów (dynamiczny od 1.16+, stały w 1.12)
- sekwencja logowania (nowa faza konfiguracyjna od 1.20.2+)
Bez kompatybilności klient 1.21 podłączający się do serwera 1.20 dostaje "Outdated server" i odłączenie. W drugą stronę to samo.
Co to jest Via Project
Via Project to trzy powiązane pluginy:
| Plugin | Co robi | Kiedy potrzebny |
|---|---|---|
| ViaVersion | rdzeń, stary serwer przyjmuje nowych klientów | prawie zawsze |
| ViaBackwards | nowy serwer przyjmuje starych klientów | gdy serwer nowszy niż klient |
| ViaRewind | wsparcie bardzo starych klientów 1.7 do 1.9 | osobno |
Wszystkie trzy współpracują. ViaBackwards wymaga ViaVersion, ViaRewind wymaga obu do pełnego zakresu.
Jak działa remap protokołu
ViaVersion przechwytuje pakiety sieciowe między klientem a serwerem i przepisuje je w locie.
Wyobraźmy sobie klienta 1.21 i serwer 1.20.4. Klient wysyła handshake z protocol_version=767 (1.21). Serwer oczekuje 765 (1.20.4). Bez ViaVersion serwer odpowiada "Outdated client".
Z ViaVersion na serwerze:
- Klient wysyła handshake 1.21
- ViaVersion przechwytuje, zapamiętuje rzeczywistą wersję klienta
- Podmienia handshake na 1.20.4 przed przekazaniem do serwera
- Serwer akceptuje klienta jako 1.20.4
- Dalej każdy przychodzący i wychodzący pakiet ViaVersion przepisuje między formatami 1.21 i 1.20.4
Dla każdej pary wersji Via trzyma w kodzie zestaw "protokołów": co zostało przemianowane, co usunięte, jak konwertowane jest każde pole. Przy podłączeniu 1.21 do 1.20.4 do 1.19.4 do 1.18.2 do 1.17.1 do 1.16.5 łańcuch transformacji buduje się automatycznie.
ViaVersion: kompatybilność w przód
ViaVersion pozwala nowym klientom grać na starym serwerze. Przykład: serwer Paper 1.16.5 (przypięty przez duży modpack, który nie może być zaktualizowany), klienci na 1.21.
Wrzucamy ViaVersion do plugins/. Koniec. Po restarcie klienci 1.17, 1.18, 1.19, 1.20, 1.21 mogą połączyć się z serwerem 1.16.5.
Co działa:
- ruch, ataki, interakcja ze światem
- czat i komendy
- większość bloków i przedmiotów
- encje i spawn mobów
Co NIE działa automatycznie:
- nowe bloki (copper, sculk) wyświetlają się jako bloki zastępcze na kliencie (zwykły kamień na przykład)
- nowe przedmioty (mace, trial key) pokazują się jako bedrock lub air
- nowe encje (warden, breeze) nie renderują się poprawnie
- nowe mechaniki (trial spawner, crafter) nie działają, serwer o nich nic nie wie
ViaVersion jest użyteczny, gdy serwer z jakiegoś powodu nie może być zaktualizowany, a gracze nie chcą zejść ze starego klienta.
ViaBackwards: kompatybilność wstecz
Odwrotny przypadek. Serwer 1.21, klienci przychodzą z 1.17, 1.18, 1.19, 1.20. Trzeba, żeby grali.
Instalujemy ViaVersion plus ViaBackwards. ViaBackwards dodaje odwrotny remap: serwer wysyła pakiety 1.21, ViaBackwards konwertuje je na format klienta.
Najciekawsza część ViaBackwards to item remapping. Na serwerze 1.21 gracz ma w ekwipunku mace. Klient 1.20.6 nie wie o mace. ViaBackwards wizualnie zamienia go na coś podobnego (iron_sword) i dodaje w lore linijkę [1.21 item: mace]. Psucie klienta nie wchodzi w grę, więc Via zawsze zastępuje nieznane przedmioty najbliższym odpowiednikiem.
Podobnie z blokami: copper_bulb staje się redstone_lamp, trial_spawner staje się mob_spawner, vault staje się beczką z etykietą i tak dalej.
ViaRewind: klienci legacy
ViaBackwards wspiera średnio 4-5 głównych wersji wstecz (obecnie 1.17+). Dla 1.8 i 1.9 potrzebny jest osobny plugin, ViaRewind.
ViaRewind to cięższa proteza. Między 1.8 a 1.9 Mojang przebudował mechanikę walki (attack cooldown, dual-wielding, tarcze). Między 1.12 a 1.13 zmienił się format ekwipunku (numeryczne item ID do namespaced strings, "flattening"). Każda taka zmiana wymaga skomplikowanej logiki po stronie Via, aby emulować nowe mechaniki dla starego klienta.
ViaRewind pokrywa:
- 1.7.10 (przez ViaLegacy, osobny plugin dla bardzo starych klientów)
- 1.8.x
- 1.9.x
- częściowo 1.10, 1.11, 1.12
Na kliencie 1.8 PvP działa jak w 1.8: bez cooldownu, bez tarcz, stary hitbox. To ważne: projekty ze społecznością PvP 1.8 celowo trzymają serwer 1.21 z Via, żeby gracze 1.8 dostali znajomy gameplay, a gracze 1.21 nowoczesny.
Macierz wsparcia
Stan na 2026. Przed produkcyjnym deployem sprawdź na viaversion.com.
ViaVersion
| Wersja serwera | Wspierani klienci |
|---|---|
| 1.8.x | 1.8 do 1.21.x (przez Via) |
| 1.12.2 | 1.12.2 do 1.21.x |
| 1.16.5 | 1.16.5 do 1.21.x |
| 1.18.2 | 1.18.2 do 1.21.x |
| 1.19.4 | 1.19.4 do 1.21.x |
| 1.20.4 | 1.20.4 do 1.21.x |
| 1.21.x | 1.21.x do 1.21.x (tylko ta sama wersja) |
ViaBackwards
| Wersja serwera | Wspierani starsi klienci |
|---|---|
| 1.21.x | 1.17 do 1.21 |
| 1.20.x | 1.16 do 1.20 |
| 1.19.x | 1.15 do 1.19 |
| 1.18.x | 1.14 do 1.18 |
ViaRewind
| Wersja serwera | Wspierani klienci legacy |
|---|---|
| 1.21.x + Via | 1.8.x do 1.12.x |
| 1.20.x + Via | 1.8.x do 1.12.x |
| 1.19.x + Via | 1.8.x do 1.12.x |
Kombinacja ViaVersion + ViaBackwards + ViaRewind na Paper 1.21 daje pełny zakres 1.8 do 1.21. To maksimum bez własnej inżynierii.
Instalacja na Paper / Spigot / Purpur
Najprostszy przypadek. Standalone serwer.
- Pobieramy najnowsze wersje wszystkich trzech pluginów z Modrinth
- Wrzucamy jary do
plugins/:
plugins/
ViaVersion-5.x.x.jar
ViaBackwards-5.x.x.jar
ViaRewind-4.x.x.jar
- Restartujemy serwer
- W konsoli powinno być:
[ViaVersion] Loaded 1.8 -> 1.21 protocols
[ViaBackwards] Loaded 1.17 -> 1.21 backward protocols
[ViaRewind] Loaded 1.7 -> 1.12 rewind protocols
- Weryfikacja poleceniem:
/viaversion list
Pokaże podłączonych graczy i ich rzeczywiste wersje.
Instalacja na Velocity
Velocity to nowoczesne proxy dla sieci serwerów. Via zachowuje się tam inaczej: siedzi na proxy, a każdy serwer backendowy nie potrzebuje własnego Via.
Proxy plugins/:
plugins/
ViaVersion-5.x.x.jar
ViaBackwards-5.x.x.jar
ViaRewind-4.x.x.jar
Proxy plugins/viaversion/config.yml:
# Velocity-specific
velocity-ping-interval: 60
velocity-ping-save: true
# Protokoly, ktore proxy akceptuje
check-for-updates: false
# Nie ruszac serwerow backendowych
# Via sama zajmuje sie kazdym z osobna
Zalety Via na Velocity:
- jedna konfiguracja dla całej sieci
- mniejsze obciążenie CPU: remap dzieje się na proxy, backendy dostają natywne pakiety
- łatwiejsze zarządzanie wersjami
Wady:
- ruch Via przechodzi przez proxy, trochę większy narzut sieciowy
- jeśli backend ma inną wersję niż proxy, i tam potrzebna jest Via
Rekomendacja dla sieci
Dla małej sieci (2-3 serwery tej samej wersji) wrzucamy Via tylko na proxy. Dla sieci mieszanej (jedno lobby 1.21, arena PvP 1.8) Via na każdym serwerze z niedopasowaną wersją.
Instalacja na BungeeCord
BungeeCord jest wspierany, ale Velocity jest dużo lepszy pod kątem wydajności. Jeśli nie ma konkretnego powodu do pozostania na BungeeCord, przechodź na Velocity.
Dla BungeeCord:
plugins/
ViaVersion-5.x.x.jar
ViaBackwards-5.x.x.jar
ViaRewind-4.x.x.jar
Konfig plugins/ViaVersion/config.yml:
bungee-ping-interval: 60
bungee-ping-save: true
Na backendach Via nie jest potrzebna, jeśli dzielą wersję protokołu z proxy.
Kluczowe ustawienia config.yml
Plik plugins/ViaVersion/config.yml ma dziesiątki opcji. Oto te, które są najważniejsze.
fix-non-full-blocks
# Poprawia hitboxy niepelnych blokow dla nowych klientow na starym serwerze
fix-non-full-blocks: true
Potrzebne przy podłączaniu nowych klientów do starego serwera. Na przykład klient 1.13+ z flattened blokami na serwerze 1.12.2. Bez tej opcji hitboxy niektórych bloków (płotki, murki) będą obliczone niepoprawnie.
auto-team
# Automatycznie tworzy zespoly, aby tagi nad glowami wyswietlaly sie poprawnie
auto-team: true
Ważne dla klientów 1.8. W 1.8 zespoły używano do ukrywania tagów nad głową (niewidzialność). Bez auto-team pluginy typu NPCs lub vanish źle działają dla klientów 1.8.
remap-pings
remap-pings: true
Poprawia ping listy serwerów dla klientów wszystkich wersji. Bez tego niektórzy starsi klienci w ogóle nie widzą serwera na liście.
1-13-team-colour-change
1-13-team-colour-change: true
Poprawia kolory zespołów dla klientów sprzed 1.13. Użyteczne na serwerach PvP z kolorowymi tagami zespołów.
chunk-border-fix
chunk-border-fix: true
Poprawia artefakty na granicach chunków dla starych klientów na nowym serwerze.
fix-infested-block-breaking
fix-infested-block-breaking: true
Drobny, ale irytujący fix. Bez niego infested bloki łamią się zbyt wolno dla klientów 1.14+.
Wydajność
Remap protokołu nie jest darmowy. Każdy pakiet idący od klienta do serwera (i w drugą stronę) przechodzi przez łańcuch konwerterów.
Narzut zależy od różnicy wersji:
| Różnica | Narzut CPU na gracza |
|---|---|
| brak (klient = serwer) | ~0% |
| 1 wersja (klient 1.21 na 1.20.4) | 3-5% |
| 3 wersje (klient 1.21 na 1.19.4) | 8-12% |
| 5-8 wersji (klient 1.21 na 1.16.5) | 15-25% |
| maksimum (serwer 1.21, klient 1.8 przez Rewind) | 25-40% |
Liczby są przybliżone i zależą od obciążenia serwera. Najdroższy remap to dane chunków (szczególnie flattening 1.13: stare numeryczne ID konwertowane na palette format).
Optymalizacja
Jeśli serwer 1.21 ma 70% graczy na 1.21 i 30% na starszych wersjach, nie potrzeba specjalnej optymalizacji, nowoczesny CPU sobie poradzi.
Dla serwerów trzymających 300+ graczy jednocześnie na różnych wersjach warto:
- Zwiększyć pulę wątków dla Via:
# config.yml
velocity-pinger-thread-count: 4
chunk-border-fix: true
- Wyłączyć
fix-non-full-blocks, jeśli większość klientów jest na jednej wersji - Używać ViaVersion na proxy Velocity zamiast Paper, odciążamy backend
Flattening pre-1.13
Osobny ból. Gdy klient 1.12 łączy się z serwerem 1.13+, ViaRewind konwertuje każdy blok i przedmiot między dwoma systemami identyfikacji (numeryczne ID do namespaced). Na chunku z tysiącami bloków to wyczuwalny koszt.
Dla serwerów z dużym ruchem starszych klientów lepiej trzymać osobną instancję 1.12.2, niż przepuszczać wszystko przez Rewind.
Ograniczenia
Via nie jest magią. Czego nie potrafi:
Nowe bloki i przedmioty
Copper bulb, trial spawner, mace, breeze rod, vault, wszystko nowe w 1.21. Dla klienta 1.20 Via podmienia je wizualnie, ale funkcjonalność nie działa. Gracz z klienta 1.20 nie może interagować z crafterem (nowy blok w 1.21), ponieważ klient nie zna polecenia.
Nowe wymiary i biomy
Jeśli serwer generuje świat w nowym biomie (cherry grove z 1.20), dla klienta 1.19 biom będzie wyglądał jak plains, niepoprawna tekstura, niepoprawne cząstki.
Nowe animacje i funkcje
Armadillo (nowa encja z 1.21) na kliencie 1.20 może nie renderować się wcale lub pokazywać jako świnia. Nowe animacje smite wolf, specyficzne ataki nie grają się na starych klientach.
Resource packi
Resource packi są powiązane z konkretną wersją. Pack zrobiony pod 1.21 nie działa na kliencie 1.17. Dla serwerów cross-version potrzeba kilku packów lub jednego minimalnego, kompatybilnego ze wszystkimi.
PvP: 1.8 versus nowoczesne
Duży temat dla serwerów ze społecznością PvP.
1.8 PvP: spam klików, bez cooldownu, długi hitbox, krytyczne uderzenia w skoku. Walka jest bardzo szybka, decyduje refleks i aim.
1.9+ PvP: attack cooldown (wskaźnik ładowania miecza), tarcze blokują obrażenia, dual-wielding. Walka jest wolniejsza, decyduje timing.
Jeśli trzymasz serwer 1.8 przez ViaVersion i przyjmujesz klientów 1.21, gracze 1.21 dostaną mechanikę 1.8 (serwer 1.8 = zasady 1.8). To typowy setup PvP w stylu Hypixela.
Jeśli trzymasz serwer 1.21 z ViaBackwards i ViaRewind i przyjmujesz klientów 1.8, gracze 1.8 dostaną mechanikę 1.21. Wielu graczy 1.8 tego nie chce, przychodzą po stare PvP.
Wniosek: dla serwera PvP określ docelową mechanikę i trzymaj odpowiednią podstawę.
Rozwiązywanie problemów
"Outdated server" / "Outdated client"
Najczęstszy problem. Możliwe przyczyny:
- Klient jest nowszy niż maksymalna wersja wspierana przez ViaVersion. Zaktualizuj ViaVersion.
- ViaVersion nie załadował się. Sprawdź konsolę.
- Cache ViaVersion uszkodzony. Usuń
plugins/ViaVersion/cache/i uruchom ponownie.
Invalid packet / client disconnected
Zwykle oznacza zatrzymanie remapu z powodu niewspieranego pakietu. Zwykle to mod na kliencie, który wysyła własne pakiety. Rozwiązanie:
- Sprawdź, czy klient nie ma niekompatybilnych modów (stary Schematica, stary BetterFPS).
- Zaktualizuj ViaVersion do najnowszej wersji.
- Ustaw
debug: truew config.yml i sprawdź, który pakiet dokładnie się łamie.
Uszkodzenie NBT przy przenoszeniu przedmiotów między wersjami
Klient 1.20 trzyma mace z serwera 1.21 w ekwipunku. Przy zapisie struktura NBT może ulec uszkodzeniu, ponieważ klient nie zna nowych pól. Via zwykle radzi sobie z tym poprawnie, ale jeśli gracz wyrzuci przedmiot i podniesie z powrotem, możliwa jest utrata danych.
Rozwiązanie:
- włącz
handle-invalid-player-data: truew config.yml - nie dawaj graczom ze starych wersji nowych przedmiotów bezpośrednio
Chunki nie ładują się
Zwykle z powodu konfliktu z ProtocolLib lub innym pluginem manipulującym pakietami. Upewnij się, że ProtocolLib jest kompatybilny z twoją wersją Paper i Via. Zaktualizuj oba.
"Your protocol is not supported"
Klient jest bardzo stary (1.6.4 lub starszy) lub beta snapshot niewspierany przez Via. Niestety nie wszystkie wersje są wspierane, zwykle porzucone pre-release i snapshoty.
Via + ProtocolLib
ProtocolLib jest używany przez wiele pluginów do przechwytywania pakietów (HolographicDisplays, pluginy NPC, pluginy TAB).
Via i ProtocolLib mogą kolidować, ponieważ oba zmieniają pakiety. Zwykle Via idzie pierwsza w łańcuchu, ProtocolLib druga, lub odwrotnie. Zła kolejność prowadzi do uszkodzonych pakietów.
Rozwiązanie:
- zaktualizuj oba do najnowszych wersji
- w
config.ymlProtocolLib włączhandshake-hook-mode: LATE - testuj dokładnie: każdy plugin używający ProtocolLib z osobna
Jeśli pojawiają się problemy, tymczasowo wyłącz ProtocolLib i sprawdź, czy Via działa sama.
Via + Geyser
Geyser pozwala klientom Bedrock łączyć się z serwerem Java. To osobne zadanie od Via: Via obsługuje klientów Java, Geyser Bedrock.
Oba są kompatybilne i często stoją razem. Kolejność instalacji:
- Geyser w
plugins/ - ViaVersion + ViaBackwards + (jeśli potrzeba) ViaRewind w
plugins/ - Floodgate (do uwierzytelniania graczy Bedrock bez konta Microsoft)
Nie ma konfliktów, pluginy działają na różnych poziomach: Geyser tłumaczy protokół Bedrock na protokół Java, Via tłumaczy między wersjami protokołu Java.
Najlepsze praktyki
Duży zakres kontra stabilność
Serwer przyjmujący klientów od 1.8 do 1.21 to bardzo szeroki zakres. Plusy: maksimum potencjalnych graczy. Minusy: narzut CPU, bugi na stykach wersji, trudniejsze utrzymanie.
Rekomendacja: przyjmuj zakres, który rzeczywiście potrzebuje twoja społeczność. Serwer survival z poważnymi nowoczesnymi funkcjami ogranicz do 1.19+. Projekt PvP ze społecznością 1.8 postaw pełny Via + Rewind i bądź gotowy na problemy.
Aktualizuj Via regularnie
Via Project rozwija się aktywnie. Każda główna wersja Minecrafta wymaga aktualizacji Via. Ustaw przypomnienie o aktualizacji (przez plugin typu InsaneAnnouncer lub zwykły wpis w kalendarzu) i czytaj changelog przed deployem.
Unikaj egzotycznych modów na kliencie
Wiele problemów z Via nie jest winą Via, tylko kustomowych modyfikacji klienta (Feather Client, Lunar Client, Badlion). Często łamią packet-flow. Gdy gracz zgłasza problem, pierwsze pytanie: "co masz zainstalowane na kliencie".
Testuj na każdej nowej wersji
Wyszło 1.21.4? Zaktualizuj Via, przeprowadź sesję testową z nowym klientem na starym serwerze. Obejrzyj logi. Problemy często pojawiają się w specyficznych scenariuszach (konkretny przedmiot, konkretny mob).
Zabezpieczenie serwera i DDoS
Serwery cross-version są popularne i częściej stają się celem ataków, więcej graczy oznacza więcej zazdrosnych konkurentów, niezadowolonych adminów innych projektów, zwykłych trolli. Poza standardową ochroną TCP warto zadbać o poprawne działanie Via pod obciążeniem.
MineGuard przepuszcza ruch Minecrafta przez filtr, odsiewając śmieciowe pakiety, zanim dojdą do serwera. Via działa na wierzchu, dla niej nie ma znaczenia, skąd przyszedł pakiet, ważne, że to prawidłowy handshake. Obie warstwy są zgodne i uzupełniają się.
Podsumowanie
Via Project to konieczny komponent dla każdego poważnego serwera Minecraft, który chce przyjmować publiczność szerszą niż jedna wersja. ViaVersion jest praktycznie zawsze potrzebna, ViaBackwards jest konieczna, gdy serwer jest nowszy niż typowy klient, ViaRewind uzupełnia wsparciem legacy społeczności 1.8.
Instalacja jest banalnie prosta: wrzuć jary do plugins/, zrestartuj. Dostrajanie: kilkanaście opcji w config.yml, większość już działa dobrze z domyślnymi.
Główna zasada: rozumiej koszt. Via nie jest darmowa pod kątem CPU, a nowe funkcje serwera nie są dostępne dla starych klientów. Wybieraj zakres pod realną społeczność, nie pod teoretycznie maksymalny.
Chroń swój serwer przed atakami DDoS
Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.
Wypróbuj za darmoPowiązane artykuły
Poradnik administrowania serwerem Minecraft dla początkujących
Pełny poradnik dla początkujących adminów Minecrafta: podstawowe komendy, konfiguracja uprawnień przez LuckPerms, zarządzanie światami, backupy, banlista, whitelist, bezpieczeństwo serwera i typowe błędy nowicjuszy.
Porównanie jąder serwerowych Minecraft 2026: Spigot vs Paper vs Purpur vs Pufferfish vs Leaf
Które jądro Minecraft wybrać w 2026: analiza Spigot, Paper, Purpur, Pufferfish i Leaf z realnym TPS i rekomendacjami pod online.
MineGuard vs DDoS-Guard: porównanie ochrony DDoS dla Minecrafta w 2026
Szczegółowe porównanie MineGuard i DDoS-Guard do ochrony serwerów Minecraft. Rozkładamy funkcje, ceny, specjalizację i pomagamy wybrać najlepszą opcję.