server.properties: pełna referencja wszystkich opcji (Minecraft 2026)
Plik server.properties leży w korzeniu serwera i jest czytany dokładnie raz: przy starcie. Edytujesz linię na działającym serwerze, zapominasz zrestartować, potem dziwisz się, że nic się nie zmieniło. Od 1.20.5 plik dorobił się nowych kluczy, w 1.21 doszedł pakiet transferu i kilka flag bezpieczeństwa. W jednej referencji omawiamy każdą linię: co robi, jaka jest wartość domyślna na vanilla i jakie wartości realnie ustawiają operatorzy na SMP, minigrach, hardcore i dużych projektach publicznych.
Gdzie leży plik i jak jest zbudowany
Plik powstaje przy pierwszym uruchomieniu w tym samym katalogu, gdzie jest paper.jar lub server.jar. Format banalny: key=value, jedna para w linii, komentarze zaczynają się od #. Klucze małymi literami z myślnikami, bez spacji wokół =. Kodowanie UTF-8 bez BOM, zakończenia linii LF (jeśli edytujesz na Windows i potem widzisz krzaki w motd, problem jest w kodowaniu).
Serwer czyta plik raz przy starcie. Każda zmiana wymaga restartu, na Paper komenda /minecraft:reload przeładuje podzbiór pól (większość i tak wymaga pełnego restartu). Nieznane klucze są ignorowane po starcie, brakujące są dopisywane z wartościami domyślnymi. Usuń plik i vanilla wygeneruje nowy z pustym level-seed= i świeżą prośbą o zaakceptowanie EULA w eula.txt.
Komentarze i kolejność linii nie są zachowywane: po pierwszym uruchomieniu plik jest przepisywany w formie kanonicznej (na vanilla alfabetycznie). Komentarze trzymaj w osobnej notatce, w samym pliku nie przeżyją.
Network: porty, MTU i anty-proxy
Blok sieciowy decyduje, jak serwer nasłuchuje połączeń i jak obsługuje pakiety.
server-portto port TCP, domyślnie25565. Można dać dowolny wolny port, ale jak zmienisz, klienci muszą podawać go jawnie (mc.example.com:25577) albo trzeba opublikować rekord SRV w DNS. Ukrywanie przed Shodanem przez zmianę portu prawie nie pomaga: atakujący skanują zakresy.server-ipto interfejs, na którym nasłuchujemy. Domyślnie pusto, czyli wszystkie interfejsy. Jeśli dedyk ma kilka IP i chcesz zbindować na jeden, wpisz IP tutaj. Na VPS z jednym IP zostaw puste.network-compression-thresholdto rozmiar pakietu w bajtach, od którego włącza się kompresja zlib. Domyślnie256. Ustaw512przy mocnym CPU i słabym łączu,-1(kompresja off) przy LAN albo łączu 10G, gdy chcesz oszczędzić takty.prevent-proxy-connectionsprzytruekaże serwerowi pytać API Mojanga o VPN/proxy przy każdym połączeniu. Brzmi dobrze, w praktyce blokuje synchronicznie na każdym join i nie łapie nowoczesnych residential proxies. Zostawfalse, filtrowanie rób na warstwie DDoS lub w pluginie.rate-limitto maksymalna liczba pakietów na sekundę od jednego klienta. Domyślnie0(bez limitu). Ustaw300na publicznym serwerze, żeby ograniczyć floodowanie połączeń w sesji.enable-statusdecyduje, czy serwer odpowiada na ping (Server List Ping). Domyślnietrue. Jeśli chcesz schować serwer przed publicznymi trackerami,false, ale lista graczy też zniknie.hide-online-playersdoszło w 1.18. Przytruew Server List Ping leci tylko liczba graczy, bez nicków. Przydatne przeciw botom skrobiącym nicki pod targetowany spam.
World: generacja, format regionów
level-nameto folder świata. Domyślnieworld. Zmień, żeby przełączyć światy bez kasowania starego: zostawworld_old, ustawlevel-name=world_new, przy starcie wygeneruje się nowy.level-seedto seed generacji. Pusty = losowy. Akceptuje liczby i stringi (string jest haszowany do longa).level-typeto typ generatora. Od 1.19 format namespaced ID:minecraft:normal,minecraft:flat,minecraft:large_biomes,minecraft:amplified,minecraft:single_biome_surface. Stare kluczeDEFAULT/FLAT/LARGEBIOMES/AMPLIFIEDjeszcze działają przez legacy mapper, ale Mojang prosi o nowy format.generator-settingsto JSON dla niestandardowej generacji (lista warstw dla flat, ID biomu dla single_biome). Większość ownerów SMP zostawia pusty.generate-structuresdecyduje, czy generują się wioski, fortece i trail ruins. Domyślnietrue.falsejeśli chcesz goły świat na survival show albo testy.world-creation-seeddoszło z nowym pipeline w 1.20+, dublujelevel-seeddla datapacków, które czytają konkretnie ten klucz.region-file-compressionto algorytm kompresji plików region. Od 1.20.5 wspierane:deflate(domyślnie),lz4,none. Na dużych światach LZ4 daje +20-30% prędkości ładowania chunków przy +5-10% rozmiaru na dysku. Jeśli dysk to nie NVMe, przełącz nalz4.max-world-sizeto promień świata w blokach od spawnu. Domyślnie29999984(cap vanilla). Obniż do 5000-10000 dla minigame areny, żeby gracze nie odjechali daleko.allow-netherwłącza generację i dostęp do Netheru. Domyślnietrue. Na skyblock/bedwars zwyklefalse.spawn-monstersto spawn wrogich mobów. Domyślnietrue.falsena kreatywnym albo huba.spawn-animalsmobs pasywne.spawn-npcsmieszkańcy wiosek.
Gameplay: tryb, trudność, respawn
gamemodeto tryb startowy:survival(0),creative(1),adventure(2),spectator(3). Słowo lub liczba, oba działają.force-gamemodeprzytrueresetuje każdego gracza do skonfigurowanegogamemodeprzy każdym połączeniu. Przydatne na serwerach survivalowych, gdy admin był chwilę nacreativei nie chce, żeby to zostało.difficultytopeaceful,easy,normallubhard. Hardcore to osobna flaga.hardcoreprzytruesprawia, że śmierć w survivalu = ban lub wymuszony spectator (zależnie od ustawień), brak regeneracji życia, trudność zafiksowana na hard. Raz ustawione i nie cofniesz banalnie: świat ma flagę hardcore w środku.pvpprzyfalseto brak bezpośrednich obrażeń między graczami. Pośrednie (TNT, fall damage z push blocków) przechodzi, takie kanały zatyka się pluginami.allow-flightpozwala pluginowi lub przedmiotowi (Elytra, kreatywny) włączyć lot bez kicka anti-cheata. Domyślniefalse. Jeśli masz pluginy z jetpack/grappling,true.spawn-protectionto promień w blokach wokół spawnu, gdzie nie-opowie nie mogą stawiać/burzyć. Domyślnie16. Na SMP bez fortecy spawnowej0, na publicznych hubach64-128.op-permission-levelto startowy poziom uprawnień nowych opów. 1 do 4. Domyślnie4(pełne prawa). Na dużych projektach2,4daj tylko ownerowi: poziom 4 odblokowuje/op,/deop,/stopi dostęp do command blocka.function-permission-levelto poziom dla komend w funkcjach (mcfunction). Domyślnie2.default-resource-packto URL paczki zasobów, którą serwer proponuje klientom (od 1.20.3 kilka paczek przezserver-resource-pack-prompti serię pól).require-resource-packprzytruekicka klientów, którzy nie chcą paczki.resource-pack-sha1to SHA-1 archiwum paczki dla weryfikacji integralności. Obowiązkowe pole, jeśli chcesz mieć pewność, że klient nie dostał MITM-podmienionej wersji.
Performance: view-distance, simulation-distance, ticki
Tu mieszkają najgorętsze ustawienia. Pomylony view-distance=32 położy serwer na 30+ graczach, dobry dodaje wolne TPS-y.
view-distanceto promień chunków, który serwer wysyła klientowi. Domyślnie10. SMP do 50 graczy:8-10. 100+ graczy:6-8. Minigame arena:4-5(mapa i tak mała).simulation-distanceto promień chunków, w którym tickują moby, farmy, rośliny rosną i działa redstone. Wprowadzone w 1.18 jako oddzielna metryka od view. Domyślnie10. Ustaw6-8: dalej gracz i tak nie wchodzi w farmy, CPU oszczędza dramatycznie.entity-broadcast-range-percentageto procent view-distance, w którym klient widzi entity (moby, item frame). Domyślnie100. Obniż do50-70na serwerze z lagującymi entity: wizualnie gracz widzi mniej, sieć i klient odetchną.max-tick-timeto milisekundy, przez które tick może działać, zanim watchdog zabije serwer. Domyślnie60000(60 sekund) na vanilla,-1na Paper (off). Jeśli nie jesteś na vanilla, a watchdog ubija serwer w środku nocy, ustaw-1i goń laga przez/spark.max-chained-neighbor-updatesogranicza kaskady sąsiadów redstone na tick. Domyślnie1000000w 1.21. Na SMP, gdzie gracze budują wielkie TNT-dupery i taśmy redstone, obniż do100000-300000: długie łańcuchy fizyki się urywają, lag-machines giną, normalne farmy działają.sync-chunk-writeszapisuje chunki synchronicznie przytrue(domyślnie), asynchronicznie przyfalse. Na SSD zostawtrue, async psuje integralność świata przy crashu. Na HDD pod dużym obciążeniemfalsewygładza spike, ale ryzyko korupcji jest realne.entity-tracking-rangejest hardkodowane na vanilla, na Paper w paper-world.yml. Nie ma go wserver.properties, nie wpisuj.
Security: online-mode, secure-profile, whitelist, log-ips, accept-transfers
online-modeto najważniejsza linia w całym pliku. Przytrueserwer weryfikuje UUID i sesję przez API Mojanga/Microsoftu. Przyfalsekażdy klient wchodzi pod dowolnym nickiem. Domyślnietrue. UstawfalseTYLKO gdy przed serwerem stoi proxy Velocity/BungeeCord zonline-mode=truena proxy.enforce-secure-profiledoszło w 1.19, w 1.21 nadal istotne. Przytrueklient musi mieć podpisany przez Mojanga klucz dla wiadomości na czacie. Pod klientami Bedrock przez Geyser wyłącz (false), inaczej gracze Bedrock nie wejdą.prevent-proxy-connectionsopisane wyżej w network.white-listprzytruewpuszcza tylko nicki zwhitelist.json. Domyślniefalse. Must-have na prywatnym SMP.enforce-whitelistprzytruekicka usuniętych z whitelisty natychmiast. Przyfalsegracz, którego usunięto z whitelisty, zostaje dopóki nie wyloguje. Brzmi odwrotnie, ale tak działa vanilla.log-ipsdoszło w 1.20.2. Przytrue(domyślnie) IP gracza idzie dolatest.logprzy każdym połączeniu. Dla zgodności z RODO i mniej leaków:false. Logi do moderacji nadal są, tylko bez IP.accept-transfersdoszło w 1.20.5. Pozwala przyjąć pakiet transferu z innego serwera: gracz, który na źródłowym wykonał/transfer, ląduje u ciebie bez dialogu logowania. Ogromne ryzyko bezpieczeństwa, jeśli nie kontrolujesz źródeł: zostawfalsena samodzielnym serwerze, włącztruetylko w sieci proxy, gdzie transfer to feature lobby.op-permission-levelopisane przy gameplay.text-filtering-configto ścieżka do JSON konfigu chmurowego filtra tekstu (Microsoft). Domyślnie pusto, niepotrzebne.
Query, RCON i interfejsy admina
enable-queryto UDP-protokół w stylu GameSpy, który wystawia statystyki (TPS, gracze, wersja) do trackerów. Domyślniefalse. Włącz tylko jeśli faktycznie potrzebujesz wysyłać statystyki do monitora: dodatkowy otwarty port UDP to dodatkowa powierzchnia ataku.query.portto port UDP query, domyślnie25565(taki sam jak server-port). Przenieś na osobny, jeśli włączasz.enable-rconto TCP-protokół zdalnej administracji. Domyślniefalse. Jeśli włączasz, ustaw mocnercon.passwordi odetnij port firewallem do IP adminów. RCON nie ma TLS: w sieci publicznej tuneluj go przez SSH lub WireGuard.rcon.portto port RCON, domyślnie25575.rcon.passwordjest pusty domyślnie, puste hasło = RCON praktycznie wyłączony nawet przyenable-rcon=true. 24+ losowych znaków, nie używaj hasła z hostingu.broadcast-rcon-to-opsprzytrueduplikuje komendy RCON do wszystkich opów online. Przydatne do audytu (widać, kiedy komenda przyszła z zewnątrz).broadcast-console-to-opsto samo dla komend z konsoli.enable-jmx-monitoringwystawia metryki JVM przez JMX. Przydatne dla Prometheusa z jmx-exporter. Domyślniefalse.
MOTD i branding
motdto linia pod nazwą serwera w liście. Do 59 znaków na linię, dwie linie rozdzielone\n. Kolory przez\u00A7plus kod (np.\u00A7edla żółtego), albo legacy&jeśli Paper ma włączony decoder. JSON od 1.16+ przez unicode escape, ale plugin (animated MOTD) prościej.server-iconw ogóle nie jest property, tylko plikiemserver-icon.png64x64 w korzeniu serwera. Pięć razy w roku ktoś otwiera.properties, szukaiconi nic nie znajduje.pause-when-empty-secondsdoszło w 1.21.2. Po ilu sekundach bez graczy serwer wstrzymuje pętlę ticków (moby się nie ruszają, czas stoi, IO prawie zero). Domyślnie60. Na SMP z autofermami ustaw0(bez pauzy, inaczej fermy nie działają, gdy jesteś offline). Na publicznym hubie60-300.player-idle-timeoutto minuty bezczynności, po których gracz dostaje kicka. Domyślnie0(bez kicka). Na publicznym z ograniczonymi slotami15-30.
Tabela referencyjna
| Opcja | Default | SMP (50) | Minigame (200) | Hardcore | Public hub |
|---|---|---|---|---|---|
online-mode | true | true | true | true | true (false za proxy) |
enforce-secure-profile | true | true | true | true | false (jeśli Geyser) |
view-distance | 10 | 8 | 5 | 10 | 6 |
simulation-distance | 10 | 7 | 4 | 8 | 5 |
entity-broadcast-range-percentage | 100 | 80 | 60 | 100 | 70 |
max-players | 20 | 50 | 200 | 10 | 500 |
spawn-protection | 16 | 0 | 0 | 0 | 64 |
pvp | true | true | true | true | false |
difficulty | easy | hard | normal | hard | easy |
hardcore | false | false | false | true | false |
allow-nether | true | true | false | true | false |
spawn-monsters | true | true | false | true | false |
white-list | false | true | false | true | false |
enforce-whitelist | false | true | false | true | false |
log-ips | true | false | false | false | false |
accept-transfers | false | false | true (lobby) | false | true |
enable-rcon | false | true | true | false | true |
network-compression-threshold | 256 | 256 | 512 | 256 | 256 |
rate-limit | 0 | 0 | 300 | 0 | 500 |
region-file-compression | deflate | deflate | lz4 | deflate | lz4 |
max-chained-neighbor-updates | 1000000 | 300000 | 1000000 | 1000000 | 200000 |
pause-when-empty-seconds | 60 | 0 | 60 | 0 | 60 |
op-permission-level | 4 | 2 | 2 | 4 | 2 |
FAQ
Czy online-mode=false jest bezpieczne?
Samodzielny serwer z online-mode=false jest otwarty dla każdego dzieciaka, który wpisze nick Notch: wejdź, zgrieffuj spawn, wyjdź. Bezpieczny scenariusz jest dokładnie jeden: przed serwerem stoi proxy Velocity/BungeeCord z online-mode=true, a backend ma false plus firewall, który puszcza tylko IP proxy. Każda inna konfiguracja to otwarte drzwi.
Co bardziej liczy się dla TPS, view-distance czy simulation-distance? Dla TPS: simulation-distance. Tickowanie mobów, wzrost upraw i redstone wszystkie zależą od niego. View-distance obciąża sieć i pamięć (chunki wysyłane do klienta), ale nie tick. Simulation-distance tnij agresywnie (do 4-6), view-distance trzymaj blisko standardu.
Co zrobić z accept-transfers?
Na samodzielnym serwerze bez proxy: zostaw false. Włączenie znaczy, że dowolny zewnętrzny serwer z /transfer może rzucić ci gracza z nieświeżą sesją. W sieciach proxy z kontrolowanymi punktami wejścia włączaj tylko na lobby.
Czy enforce-secure-profile=true psuje Geyser/Bedrock?
Tak. Gracze Geyser nie mają klucza podpisanego przez Mojanga, więc przy true serwer kicka ich z Multiplayer Disabled. Na czystym serwerze Java zostaw true (ochrona przed podszywaniem na czacie). Na hybrydowym z Geyserem false.
Czy mogę edytować server.properties bez restartu?
Na vanilla: nie, plik czytany raz przy starcie. Na Paper /minecraft:reload przeładowuje datapacki i podzbiór pól (whitelist, ops). Większość kluczy (view-distance, simulation-distance, online-mode, domyślny gamemode) wymaga pełnego restartu. Zmiany planuj w oknie minimum graczy.
Gdzie mieszkają opcje typu entity-tracking-range?
Nie w server.properties. Na Paper są w paper-world.yml i paper-global.yml, na Spigot w spigot.yml, na vanilla nie ma ich wcale. server.properties to nagi config vanilla, wszystko Paper/Spigot/Purpur-specyficzne siedzi w ich własnych plikach.
Dobrze ustawiony server.properties oszczędza godziny debugowania i dziesiątki ticketów od graczy. Jedno przejście po tej liście przed wypuszczeniem serwera publicznie zamyka połowę typowych problemów: lagi, dziwne boty, leaki IP, dziury autoryzacji. Wracaj do pliku po każdej dużej aktualizacji Minecrafta: od 1.20.5 każdy release dorzuca dwie-trzy nowe linie, a domyślne wartości nowych opcji nie zawsze są tym, czego twój serwer faktycznie chce.
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
Aurelium Skills (AuraSkills) vs mcMMO: który plugin umiejętności RPG 2026
mcMMO trzyma tron pluginów RPG od 2010, AuraSkills (dawniej Aurelium Skills) pojawił się w 2020 i w parę lat stał się głównym rywalem. Rozbieramy formuły XP, system umiejętności, UI, integracje i prawdziwe configi.
Jak skonfigurować ekonomię na serwerze Minecraft: kompletny poradnik
Szczegółowy poradnik konfiguracji ekonomii na serwerze Minecraft: Vault, sklepy, prace, aukcje i ochrona przed dupami. Wszystko, co potrzebne do stabilnej ekonomii serwera.
Ataki TCP vs UDP na serwery Minecraft: rozbiór różnic
Minecraft Java działa po TCP, Bedrock po UDP. Ataki na te protokoły zasadniczo się różnią: SYN flood kontra amplifikacja, filtrowanie stateful kontra DPI. Rozbieramy każdy typ ataków, realne objętości ruchu i strategie ochrony.