server.properties: pełna referencja wszystkich opcji (Minecraft 2026)

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-port to port TCP, domyślnie 25565. 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-ip to 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-threshold to rozmiar pakietu w bajtach, od którego włącza się kompresja zlib. Domyślnie 256. Ustaw 512 przy mocnym CPU i słabym łączu, -1 (kompresja off) przy LAN albo łączu 10G, gdy chcesz oszczędzić takty.
  • prevent-proxy-connections przy true każ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. Zostaw false, filtrowanie rób na warstwie DDoS lub w pluginie.
  • rate-limit to maksymalna liczba pakietów na sekundę od jednego klienta. Domyślnie 0 (bez limitu). Ustaw 300 na publicznym serwerze, żeby ograniczyć floodowanie połączeń w sesji.
  • enable-status decyduje, czy serwer odpowiada na ping (Server List Ping). Domyślnie true. Jeśli chcesz schować serwer przed publicznymi trackerami, false, ale lista graczy też zniknie.
  • hide-online-players doszło w 1.18. Przy true w 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-name to folder świata. Domyślnie world. Zmień, żeby przełączyć światy bez kasowania starego: zostaw world_old, ustaw level-name=world_new, przy starcie wygeneruje się nowy.
  • level-seed to seed generacji. Pusty = losowy. Akceptuje liczby i stringi (string jest haszowany do longa).
  • level-type to typ generatora. Od 1.19 format namespaced ID: minecraft:normal, minecraft:flat, minecraft:large_biomes, minecraft:amplified, minecraft:single_biome_surface. Stare klucze DEFAULT/FLAT/LARGEBIOMES/AMPLIFIED jeszcze działają przez legacy mapper, ale Mojang prosi o nowy format.
  • generator-settings to JSON dla niestandardowej generacji (lista warstw dla flat, ID biomu dla single_biome). Większość ownerów SMP zostawia pusty.
  • generate-structures decyduje, czy generują się wioski, fortece i trail ruins. Domyślnie true. false jeśli chcesz goły świat na survival show albo testy.
  • world-creation-seed doszło z nowym pipeline w 1.20+, dubluje level-seed dla datapacków, które czytają konkretnie ten klucz.
  • region-file-compression to 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 na lz4.
  • max-world-size to promień świata w blokach od spawnu. Domyślnie 29999984 (cap vanilla). Obniż do 5000-10000 dla minigame areny, żeby gracze nie odjechali daleko.
  • allow-nether włącza generację i dostęp do Netheru. Domyślnie true. Na skyblock/bedwars zwykle false.
  • spawn-monsters to spawn wrogich mobów. Domyślnie true. false na kreatywnym albo huba.
  • spawn-animals mobs pasywne.
  • spawn-npcs mieszkańcy wiosek.

Gameplay: tryb, trudność, respawn

  • gamemode to tryb startowy: survival (0), creative (1), adventure (2), spectator (3). Słowo lub liczba, oba działają.
  • force-gamemode przy true resetuje każdego gracza do skonfigurowanego gamemode przy każdym połączeniu. Przydatne na serwerach survivalowych, gdy admin był chwilę na creative i nie chce, żeby to zostało.
  • difficulty to peaceful, easy, normal lub hard. Hardcore to osobna flaga.
  • hardcore przy true sprawia, ż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.
  • pvp przy false to 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-flight pozwala pluginowi lub przedmiotowi (Elytra, kreatywny) włączyć lot bez kicka anti-cheata. Domyślnie false. Jeśli masz pluginy z jetpack/grappling, true.
  • spawn-protection to promień w blokach wokół spawnu, gdzie nie-opowie nie mogą stawiać/burzyć. Domyślnie 16. Na SMP bez fortecy spawnowej 0, na publicznych hubach 64-128.
  • op-permission-level to startowy poziom uprawnień nowych opów. 1 do 4. Domyślnie 4 (pełne prawa). Na dużych projektach 2, 4 daj tylko ownerowi: poziom 4 odblokowuje /op, /deop, /stop i dostęp do command blocka.
  • function-permission-level to poziom dla komend w funkcjach (mcfunction). Domyślnie 2.
  • default-resource-pack to URL paczki zasobów, którą serwer proponuje klientom (od 1.20.3 kilka paczek przez server-resource-pack-prompt i serię pól).
  • require-resource-pack przy true kicka klientów, którzy nie chcą paczki.
  • resource-pack-sha1 to 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-distance to promień chunków, który serwer wysyła klientowi. Domyślnie 10. SMP do 50 graczy: 8-10. 100+ graczy: 6-8. Minigame arena: 4-5 (mapa i tak mała).
  • simulation-distance to 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ślnie 10. Ustaw 6-8: dalej gracz i tak nie wchodzi w farmy, CPU oszczędza dramatycznie.
  • entity-broadcast-range-percentage to procent view-distance, w którym klient widzi entity (moby, item frame). Domyślnie 100. Obniż do 50-70 na serwerze z lagującymi entity: wizualnie gracz widzi mniej, sieć i klient odetchną.
  • max-tick-time to milisekundy, przez które tick może działać, zanim watchdog zabije serwer. Domyślnie 60000 (60 sekund) na vanilla, -1 na Paper (off). Jeśli nie jesteś na vanilla, a watchdog ubija serwer w środku nocy, ustaw -1 i goń laga przez /spark.
  • max-chained-neighbor-updates ogranicza kaskady sąsiadów redstone na tick. Domyślnie 1000000 w 1.21. Na SMP, gdzie gracze budują wielkie TNT-dupery i taśmy redstone, obniż do 100000-300000: długie łańcuchy fizyki się urywają, lag-machines giną, normalne farmy działają.
  • sync-chunk-writes zapisuje chunki synchronicznie przy true (domyślnie), asynchronicznie przy false. Na SSD zostaw true, async psuje integralność świata przy crashu. Na HDD pod dużym obciążeniem false wygładza spike, ale ryzyko korupcji jest realne.
  • entity-tracking-range jest hardkodowane na vanilla, na Paper w paper-world.yml. Nie ma go w server.properties, nie wpisuj.

Security: online-mode, secure-profile, whitelist, log-ips, accept-transfers

  • online-mode to najważniejsza linia w całym pliku. Przy true serwer weryfikuje UUID i sesję przez API Mojanga/Microsoftu. Przy false każdy klient wchodzi pod dowolnym nickiem. Domyślnie true. Ustaw false TYLKO gdy przed serwerem stoi proxy Velocity/BungeeCord z online-mode=true na proxy.
  • enforce-secure-profile doszło w 1.19, w 1.21 nadal istotne. Przy true klient 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-connections opisane wyżej w network.
  • white-list przy true wpuszcza tylko nicki z whitelist.json. Domyślnie false. Must-have na prywatnym SMP.
  • enforce-whitelist przy true kicka usuniętych z whitelisty natychmiast. Przy false gracz, którego usunięto z whitelisty, zostaje dopóki nie wyloguje. Brzmi odwrotnie, ale tak działa vanilla.
  • log-ips doszło w 1.20.2. Przy true (domyślnie) IP gracza idzie do latest.log przy każdym połączeniu. Dla zgodności z RODO i mniej leaków: false. Logi do moderacji nadal są, tylko bez IP.
  • accept-transfers doszł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ł: zostaw false na samodzielnym serwerze, włącz true tylko w sieci proxy, gdzie transfer to feature lobby.
  • op-permission-level opisane przy gameplay.
  • text-filtering-config to ścieżka do JSON konfigu chmurowego filtra tekstu (Microsoft). Domyślnie pusto, niepotrzebne.

Query, RCON i interfejsy admina

  • enable-query to UDP-protokół w stylu GameSpy, który wystawia statystyki (TPS, gracze, wersja) do trackerów. Domyślnie false. Włącz tylko jeśli faktycznie potrzebujesz wysyłać statystyki do monitora: dodatkowy otwarty port UDP to dodatkowa powierzchnia ataku.
  • query.port to port UDP query, domyślnie 25565 (taki sam jak server-port). Przenieś na osobny, jeśli włączasz.
  • enable-rcon to TCP-protokół zdalnej administracji. Domyślnie false. Jeśli włączasz, ustaw mocne rcon.password i odetnij port firewallem do IP adminów. RCON nie ma TLS: w sieci publicznej tuneluj go przez SSH lub WireGuard.
  • rcon.port to port RCON, domyślnie 25575.
  • rcon.password jest pusty domyślnie, puste hasło = RCON praktycznie wyłączony nawet przy enable-rcon=true. 24+ losowych znaków, nie używaj hasła z hostingu.
  • broadcast-rcon-to-ops przy true duplikuje komendy RCON do wszystkich opów online. Przydatne do audytu (widać, kiedy komenda przyszła z zewnątrz).
  • broadcast-console-to-ops to samo dla komend z konsoli.
  • enable-jmx-monitoring wystawia metryki JVM przez JMX. Przydatne dla Prometheusa z jmx-exporter. Domyślnie false.

MOTD i branding

  • motd to linia pod nazwą serwera w liście. Do 59 znaków na linię, dwie linie rozdzielone \n. Kolory przez \u00A7 plus kod (np. \u00A7e dla żółtego), albo legacy & jeśli Paper ma włączony decoder. JSON od 1.16+ przez unicode escape, ale plugin (animated MOTD) prościej.
  • server-icon w ogóle nie jest property, tylko plikiem server-icon.png 64x64 w korzeniu serwera. Pięć razy w roku ktoś otwiera .properties, szuka icon i nic nie znajduje.
  • pause-when-empty-seconds doszł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ślnie 60. Na SMP z autofermami ustaw 0 (bez pauzy, inaczej fermy nie działają, gdy jesteś offline). Na publicznym hubie 60-300.
  • player-idle-timeout to minuty bezczynności, po których gracz dostaje kicka. Domyślnie 0 (bez kicka). Na publicznym z ograniczonymi slotami 15-30.

Tabela referencyjna

OpcjaDefaultSMP (50)Minigame (200)HardcorePublic hub
online-modetruetruetruetruetrue (false za proxy)
enforce-secure-profiletruetruetruetruefalse (jeśli Geyser)
view-distance1085106
simulation-distance107485
entity-broadcast-range-percentage100806010070
max-players205020010500
spawn-protection1600064
pvptruetruetruetruefalse
difficultyeasyhardnormalhardeasy
hardcorefalsefalsefalsetruefalse
allow-nethertruetruefalsetruefalse
spawn-monsterstruetruefalsetruefalse
white-listfalsetruefalsetruefalse
enforce-whitelistfalsetruefalsetruefalse
log-ipstruefalsefalsefalsefalse
accept-transfersfalsefalsetrue (lobby)falsetrue
enable-rconfalsetruetruefalsetrue
network-compression-threshold256256512256256
rate-limit003000500
region-file-compressiondeflatedeflatelz4deflatelz4
max-chained-neighbor-updates100000030000010000001000000200000
pause-when-empty-seconds60060060
op-permission-level42242

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 darmo


Powiązane artykuły