// Minecraft

WorldEdit i WorldGuard: buduj i chroń swój serwer

WorldEdit i WorldGuard: buduj i chroń swój serwer

WorldEdit i WorldGuard wymienia się często jednym tchem, ale robią zupełnie co innego. WorldEdit edytuje teren hurtowo: zaznaczasz dwa narożniki drewnianą siekierą i komendą w rodzaju //set stone zmieniasz za jednym zamachem 200 000 bloków. WorldGuard obrysowuje regiony wokół obszaru i egzekwuje tam zasady, takie jak zakaz budowania, brak PvP, brak spawnu mobów i brak szkód od eksplozji. Idą w parze, bo WorldGuard nie ma własnego narzędzia do zaznaczania i dlatego wymaga WorldEdit; w drugą stronę to nie działa.

Co dokładnie robi WorldEdit?

WorldEdit to plugin działający po stronie serwera, na Paper, Purpur albo Spigot. Gracze nie muszą nic instalować, a ty wpisujesz komendy z podwójnym ukośnikiem, które działają na tym, co masz w danej chwili zaznaczone. To jeden z kluczowych pluginów, które spotkasz praktycznie na każdym poważnym serwerze, obok EssentialsX, LuckPerms i CoreProtect.

Schemat jest zawsze ten sam: zrób zaznaczenie, wykonaj operację, sprawdź efekt, w razie czego cofnij.

KomendaCo robi
//wandDaje ci siekierę do zaznaczania: lewy przycisk ustawia punkt 1, prawy punkt 2
//set stoneWypełnia całe zaznaczenie jednym blokiem. //set air je opróżnia
//replace dirt grass_blockZamienia tylko pierwszy blok na drugi, reszta zostaje nietknięta
//copy i //pasteKopiuje zaznaczenie względem miejsca, w którym stoisz, i wkleja je gdzie indziej
//undoCofa twoją ostatnią operację; //undo 5 cofa pięć ostatnich
//schem save spawnZapisuje zaznaczenie jako schematic w plugins/WorldEdit/schematics

Jak zrobić zaznaczenie i co z nim dalej?

  1. Wpisz //wand. W ręce pojawi się drewniana siekiera.
  2. Kliknij lewym przyciskiem narożny blok, a prawym blok w przeciwległym narożniku. Twoje zaznaczenie to prostopadłościan między tymi punktami.
  3. Sprawdź komendą //size, ile bloków się w nim mieści — zawsze zanim cokolwiek wykonasz.
  4. Poprawki zrobisz przez //expand 10 up, //contract 5 north albo //expand vert (od bedrocka po limit budowania).
  5. Wykonaj operację, na przykład //replace stone deepslate.

Jeśli chcesz czegoś innego niż prostopadłościan, przełącz się komendą //sel poly na wielokąt albo //sel cyl na walec. Do naturalnego terenu używasz brushy: //brush sphere grass_block 5 stawia z dystansu kulę o promieniu 5, a //brush smooth wygładza nierówności. Schematic to zapisane zaznaczenie: odkładasz je komendą //schem save nazwa, wczytujesz przez //schem load nazwa, a potem //paste. Tak przenosisz budowlę spawnu z serwera testowego na produkcyjny bez ciągnięcia za sobą całego świata.

Co dokładnie robi WorldGuard?

WorldGuard pilnuje zasad wewnątrz obszaru. Definiujesz region (nazwa plus kawałek przestrzeni) i ustawiasz na nim flagi: przełączniki włącz/wyłącz albo wartości dla konkretnej mechaniki gry. Poza regionem nic się nie zmienia.

FlagaCo egzekwujesz
build denyNikt nie buduje ani nie rozbiera, poza członkami i właścicielami
pvp denyGracze nie mogą się nawzajem trafić wewnątrz regionu
mob-spawning denyŻadnych naturalnych spawnów mobów, czyli żadnych zombie w budynku spawnu
creeper-explosion denyCreepery nie robią już szkód w blokach wewnątrz regionu
tnt denyTNT nie wybucha albo nie wyrządza szkód
greeting Witaj na spawniePokazuje wiadomość przy wejściu na teren

Regiony mogą na siebie zachodzić. To, która zasada wtedy wygrywa, ustalasz komendą /rg setpriority nazwa 10: im wyższa liczba, tym mocniej waży dany region. W ten sposób wydzielisz arenę PvP wewnątrz chronionego spawnu. Region __global__ obowiązuje w całym świecie; obchodź się z nim ostrożnie, bo błąd dotknie wszystkiego.

Jak zabezpieczyć spawn WorldEditem i WorldGuardem razem?

  1. Wrzuć oba pliki jar do folderu plugins i zrestartuj serwer. WorldGuard nie wystartuje bez WorldEdit.
  2. Nadaj grupie staff przez LuckPerms uprawnienia worldedit.* i worldguard.*, inaczej każda komenda zostanie odrzucona.
  3. Weź siekierę do zaznaczania komendą //wand i kliknij dwa przeciwległe narożniki obszaru spawnu.
  4. Wpisz //expand vert. Teraz region sięga od bedrocka po limit budowania i nikt nie podkopie się pod nim ani nie nadbuduje nad nim.
  5. Utwórz region komendą /rg define spawn. Następnie sprawdź komendą /rg info spawn, czy narożniki się zgadzają.
  6. Ustaw flagi: /rg flag spawn build deny, /rg flag spawn pvp deny, /rg flag spawn mob-spawning deny, /rg flag spawn creeper-explosion deny oraz /rg flag spawn tnt deny.
  7. Dodaj budowniczych komendą /rg addmember spawn Nick; oni mogą budować mimo build deny.
  8. Przetestuj na koncie bez uprawnień op. Operatorzy domyślnie omijają WorldGuard, więc gdy sam masz opa, wszystko wygląda na działające, a zwykli gracze i tak się zablokują.

Ten ostatni krok jest pomijany najczęściej i generuje najwięcej zgłoszeń do supportu. Sprawdź też, czy skrzynia i drzwi nadal się otwierają: build deny blokuje interakcję z częścią bloków. Rozwiąż to komendą /rg flag spawn use allow, a nie otwieraniem praw do budowania.

Kiedy operacja WorldEdit zacina twój serwer?

WorldEdit domyślnie wykonuje operację na głównym wątku. Dopóki ona trwa, reszta stoi: żadnych ticków, zamrożona redstone, nieruchome moby, a w końcu timeouty u graczy. Przy kilku tysiącach bloków nic nie zauważysz, przy milionach owszem.

ZaznaczenieLiczba blokówCzego można się spodziewać
50 x 50 x 1025 000Gotowe niemal natychmiast, bez odczuwalnego zacięcia
100 x 100 x 20200 000Krótki skok czasu ticka, gracze widzą chwilowe szarpnięcie
200 x 200 x 502 000 000Wyraźne lagi, ryzyko timeoutów u graczy
500 x 500 x 10025 000 000Serwer stoi długo; watchdog może go ubić

Koszty nie kończą się zresztą wraz z komendą. Każdy ruszony chunk musi zostać na nowo oświetlony i zapisany, a historia cofania zostaje w pamięci, żeby //undo nadal działało. Gigantyczny //set zjada więc tymczasowo sporo RAM ponad to, co zużywa już twój świat, i na pakiecie 2 GB za 9,50 zł miesięcznie poczujesz to szybciej niż na 8 GB.

Jak ograniczyć ryzyko dużych operacji?

Najważniejszym zabezpieczeniem jest twardy limit. W pliku plugins/WorldEdit/config.yml w sekcji limits znajdziesz ustawienie max-blocks-changed. Wartość -1 oznacza brak ograniczeń; wpisz tam realną liczbę, na przykład pół miliona, a ktoś ze zbyt dużym zaznaczeniem dostanie komunikat o błędzie zamiast zamrozić serwer. Opcją max-brush-radius ograniczysz w tej samej sekcji maksymalny rozmiar brushy. Uprawnienie worldedit.limit.unrestricted zdejmuje limit z powrotem, więc dajesz je wyłącznie sobie.

Poza tym pomaga to:

  • Potnij duży projekt na kawałki po kilkaset tysięcy bloków, z chwilą przerwy pomiędzy nimi.
  • Ciężkie prace terenowe rób wtedy, gdy nikogo nie ma online, a nie w wieczornym szczycie.
  • Najpierw zrób kopię zapasową. Automatyczne kopie są standardem w każdym pakiecie hostingu Minecraft w MC-Node, ale ręczna kopia tuż przed dużą ingerencją zajmuje minutę i oszczędza wieczór pracy.
  • Użyj //size, zanim wpiszesz //set; te dwie sekundy zapobiegają większości wypadków.
  • Zmierz spark-iem, co się naprawdę dzieje. W naszym artykule o optymalizacji serwera Minecraft opisujemy odczyt TPS i czasu ticka.

Jeśli regularnie pracujesz na ogromnych zaznaczeniach, na przykład na serwerze budowlanym w trybie creative, zerknij na FastAsyncWorldEdit. Ten fork przetwarza operacje w dużej mierze poza głównym wątkiem i jest łaskawszy dla twojego TPS. Jeśli poprawiasz spawn raz na miesiąc, w zupełności wystarczy zwykły WorldEdit z rozsądnym limitem.

Kiedy WorldGuard właściwie nie jest ci potrzebny?

WorldGuard to praca: każdy region rysujesz sam i każdą flagę ustawiasz sam. Na serwerze, gdzie gracze chcą przede wszystkim chronić własny dom, lepszym wyborem bywa GriefPrevention, bo tam gracze sami claimują kawałek ziemi złotą łopatą, bez twojego udziału. Wiele serwerów działa na obu: GriefPrevention dla graczy, WorldGuard na spawn, warpy i eventy.

WorldGuard zapobiega szkodom, ale niczego nie naprawia. Do cofania griefu poza twoimi regionami potrzebujesz CoreProtect, który loguje każdą zmianę bloku i potrafi cofnąć ją dla konkretnego gracza albo obszaru. Te dwa narzędzia się uzupełniają.

Czasem nie potrzebujesz żadnego z nich. Jeśli prowadzisz małe SMP ze znajomymi, którym ufasz, wystarczy wbudowana ochrona spawnu w server.properties. Jeśli stawiasz serwer modpackowy na Forge albo NeoForge, jak All the Mods 10 na Minecraft 1.21.1, wybór jest już dokonany: to oprogramowanie nie ładuje pluginów Bukkit, więc zostajesz z tym, co daje sam pack. Jeśli wciąż wahasz się co do oprogramowania serwera, przeczytaj najpierw, jak postawić serwer Minecraft.

Najczęściej zadawane pytania

Czy potrzebuję WorldEdit, żeby używać WorldGuard? Tak. WorldGuard korzysta z zaznaczenia WorldEdit, żeby wyznaczyć region, i bez tego pluginu nie wystartuje. W drugą stronę jest inaczej: WorldEdit świetnie radzi sobie sam, jeśli chcesz tylko edytować teren.

Dlaczego przy //set dostaję komunikat "You are not permitted to do that"? Zwykle przez uprawnienia. Komendy WorldEdit siedzą za nodami w rodzaju worldedit.region.set, a bez pluginu do uprawnień dostaje je tylko operator. LuckPerms jest w 2026 roku standardem do tego zadania; nadaj grupie staff worldedit.* i przetestuj ponownie.

Jak duży może być //set, żeby nie było problemów? Zaznaczenie 100 x 100 x 20 to 200 000 bloków i na normalnym serwerze da najwyżej krótkie szarpnięcie. Od kilku milionów bloków serwer stoi już zauważalnie, a gracze mogą dostać timeout. Dlatego ustaw max-blocks-changed w plugins/WorldEdit/config.yml na realną wartość zamiast -1.

Czy mogę uruchomić WorldEdit na serwerze modpackowym? Nie jako plugin. Modpacki takie jak All the Mods 10 działają na NeoForge z Minecraft 1.21.1 i Java 21, a serwer NeoForge nie ładuje pluginów Bukkit. Pluginy działają na Paper, Purpur albo Spigot, przy czym Paper jest dla większości serwerów wyborem domyślnym.

Czy //undo działa jeszcze po restarcie? Nie. Historia cofania jest trzymana w pamięci osobno dla każdego gracza i znika przy restarcie albo przeładowaniu. Jeśli chcesz coś cofnąć, zrób to w tej samej sesji komendą //undo; jeśli serwer został już zrestartowany, potrzebujesz kopii zapasowej albo CoreProtect.

Warto przeczytać

// WYPRÓBUJ SAM
Twój serwer online w 60 sekund
MC-Node →