Serwer Skyblock od zera: konfiguracja z BentoBox i nie tylko

Serwer Skyblock od zera: konfiguracja z BentoBox i nie tylko

Skyblock żyje w Minecraft od 2011 roku, kiedy Nooby wrzucił pierwszą mapę z samotną wyspą zawieszoną w pustce. Po piętnastu latach tryb zmienił się z prostego przetrwania na kawałku ziemi w pełnoprawny gatunek z ekonomią, klanami, poziomami wysp, wyzwaniami i rankingami. Dziś na Skyblocku działa tysiące serwerów, a większość stawia na jeden z dwóch silników: BentoBox albo SuperiorSkyblock2.

W tym przewodniku przejdziemy całą drogę: od instalacji Paper i BentoBox po szczegółową konfigurację ekonomii, wyzwań, warpów i ochrony przed griefingiem. Na końcu parę słów o obciążeniu i DDoS, bo serwery Skyblock są atakowane częściej niż mogłoby się wydawać.

Czym właściwie jest Skyblock

Klasyczny scenariusz wygląda tak. Gracz pojawia się na małej wyspie w środku pustki. Na wyspie są drzewo, trochę ziemi, skrzynia z bazowym lootem (lód, wiadro lawy, nasiona) i nic więcej. Zadanie: przetrwać, rozbudować wyspę, zebrać zasoby, zbudować farmy, dostać się do Netheru, na koniec zabić Smoka Kresu. Kluczowa idea to niedobór. Nie da się po prostu wyjść i ściąć kolejne drzewo, bo poza wyspą jest tylko pustka.

Nowoczesny Skyblock nałożył na to kilka warstw:

  • Poziomy wyspy liczone z sumy wartościowych bloków, dające ranking
  • Wyzwania czyli system questów nagradzający osiągnięcia
  • Ekonomia z walutami w grze, sklepami, handlem
  • Klany i co-op pozwalające kilku graczom dzielić jedną wyspę, z rolami i zaproszeniami
  • Odwiedziny i warpy żeby obejrzeć cudze wyspy
  • Rankingi wysp według poziomu, pieniędzy, czasu gry

Skyblock występuje w różnych smakach: czysto vanilla, hardkor z custom modami, RPG z klasami i skillami, ekonomiczny z naciskiem na handel. Silnik dobiera się do koncepcji.

Wybór silnika: BentoBox, SuperiorSkyblock2, ASkyBlock

Trzy główne opcje na dziś.

BentoBox (+ BSkyBlock)

Open-source, aktywnie rozwijany, w pełni darmowy. Modułowy z założenia: rdzeń BentoBox sam nic nie robi, udostępnia API, na którym buduje się dodatki. BSkyBlock (klasyczny skyblock), AcidIsland (kwasowa woda zamiast zwykłej), CaveBlock (wariant jaskiniowy), OneBlock (jeden blok zamiast wyspy) i dziesiątki innych. Tryb wybierasz pod siebie.

Plusy: darmowy, elastyczny, dobrze udokumentowany, duży ekosystem addonów, aktywna społeczność. Minusy: niektóre zaawansowane funkcje trzeba składać z kilku addonów, nie ma gotowego pakietu premium.

SuperiorSkyblock2

Popularna alternatywa, zbudowana z naciskiem na wydajność i ładny interfejs od razu. Asynchroniczne liczenie poziomów, wbudowane misje, rangi, rankingi, animacje. Podstawa za darmo, ale część zaawansowanych funkcji (hooki do płynących plugins, niektóre addony) jest osobno. Łatwiejszy start, mniej elastyczności.

ASkyBlock

Legendarny plugin, od którego wielu zaczynało. Od 1.13+ autorzy przeszli na BentoBox (BSkyBlock jest jego następcą), a ASkyBlock został jako legacy. Na nowe serwery nie ma co brać.

AcidIsland i inne

To nie konkurenci BentoBox, tylko jego dodatki. AcidIsland to wariacja skyblocka, w której woda zadaje obrażenia, a gracz zaczyna na maleńkiej wysepce na oceanie. Instaluje się obok BentoBox.

W tym gajdzie idziemy w BentoBox + BSkyBlock, bo to nowoczesna i najbardziej rozszerzalna ścieżka. Konfiguracje SuperiorSkyblock2 są podobne logicznie, różnice odnotujemy osobno.

Wymagania serwera

BSkyBlock generuje kilka światów (overworld + nether + end) i każdy gracz dostaje kawałek nieskończonej przestrzeni. To tworzy większe obciążenie niż vanilla. Referencyjnie:

Gracze onlineRAMCPUDysk
Do 204 GB2 rdzenie 3+ GHz20 GB SSD
20-508 GB4 rdzenie 3.5+ GHz50 GB SSD
50-10012 GB6 rdzeni 4+ GHz100 GB SSD
100+16+ GB8+ rdzeni 4+ GHz200+ GB NVMe

CPU jest ważniejszy niż RAM, bo generacja chunków siedzi na jednym rdzeniu. Wybieraj procesor z mocnym single-core.

Platforma: Paper (rekomendowany), Purpur, Pufferfish. Spigot działa technicznie, ale Paper jest zauważalnie szybszy. Folia jest na razie częściowa, nie wszystkie addony są zgodne.

Wersja Minecrafta: na kwiecień 2026 BentoBox wspiera 1.19.4 do 1.21.x. Bierz najświeższe 1.21, addony nadążają.

Instalacja Paper

Świeże Ubuntu 22.04 albo Debian 12.

# Java 21 (potrzebna dla 1.21.x)
apt update
apt install openjdk-21-jre-headless wget screen -y

# Uzytkownik i folder
useradd -m -s /bin/bash mcserver
su - mcserver
mkdir skyblock && cd skyblock

# Paper 1.21.4 (podmien na aktualny build)
wget -O paper.jar "https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/222/downloads/paper-1.21.4-222.jar"

# EULA przed pierwszym startem
echo "eula=true" > eula.txt

# Skrypt startowy
cat > start.sh <<'EOF'
#!/bin/bash
java -Xms6G -Xmx6G \
  -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
  -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
  -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
  -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 \
  -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
  -Daikars.new.flags=true \
  -jar paper.jar --nogui
EOF
chmod +x start.sh

./start.sh

Pierwszy start generuje configi i się zatrzymuje (normalne). Edytujemy server.properties:

server-port=25565
max-players=50
difficulty=normal
gamemode=survival
spawn-protection=0
view-distance=8
simulation-distance=5
allow-nether=true
online-mode=true
enforce-whitelist=false

view-distance=8 wystarcza dla skyblocka i oszczędza RAM. simulation-distance=5 zmniejsza obciążenie CPU, zwłaszcza przy wielu aktywnych wyspach.

Instalacja BentoBox i BSkyBlock

BentoBox to dwa pliki: sam plugin i dodatek trybu gry. Bierzcie najnowsze release z GitHub albo SpigotMC.

cd ~/skyblock/plugins
wget -O BentoBox.jar "https://github.com/BentoBoxWorld/BentoBox/releases/download/2.8.0/BentoBox-2.8.0.jar"
mkdir -p BentoBox/addons
cd BentoBox/addons
wget -O BSkyBlock.jar "https://github.com/BentoBoxWorld/BSkyBlock/releases/download/1.24.0/BSkyBlock-1.24.0.jar"

Restartujemy serwer. BentoBox tworzy plugins/BentoBox/ z configiem i generuje światy bskyblock_world, bskyblock_world_nether, bskyblock_world_the_end.

Sprawdzamy, czy wszystko wstało:

/bentobox version
/bsb

/bsb bez argumentów otwiera menu BSkyBlock. Jeśli widać, plugin działa.

Podstawowa konfiguracja BSkyBlock

Główny plik to plugins/BentoBox/addons/BSkyBlock/config.yml. Kluczowe parametry.

world:
  friendly-name: Skyblock
  world-name: bskyblock_world
  difficulty: NORMAL

  # Rozmiar wyspy (promien ochrony)
  # Gracz moze zmieniac bloki w tym promieniu od centrum
  protection-range: 50

  # Odleglosc miedzy wyspami
  # Musi byc >= 2 * protection-range plus bufor
  distance-between-islands: 200

  # Wysokosc centrum wyspy
  island-height: 120

  # Limity druzyny
  max-team-size: 4
  max-coop-size: 4
  max-trust-size: 4

  # Wyspy na gracza
  concurrent-islands: 1

  # Limity spawnu mobow (anty-lag)
  spawn-limits:
    monsters: 30
    animals: 10
    water-animals: 5
    ambient: 5

protection-range i distance-between-islands

To kluczowa para. protection-range=50 znaczy, że wyspa jest chroniona w promieniu 50 bloków od centrum, łącznie 100x100 bloków. distance-between-islands=200 ustawia siatkę: wyspy generują się co 200 bloków.

Ważna zasada: distance-between-islands musi być co najmniej dwa razy większy od protection-range, inaczej granice wysp się nakładają. W praktyce z buforem: distance = 2 * range + 50..100. Między wyspami zostaje strefa neutralna.

Typowe presety:

Styl serweraprotection-rangedistanceRozmiar wyspyBufor
Klasyka50200100x100100 bloków
Przestronny75250150x150100 bloków
PvP-zorient.100300200x200100 bloków
Kompakt3010060x6040 bloków

Po zmianie distance-between-islands na istniejącym świecie nie da się przerobić bez regeneracji. Decyzja przed launchem.

Wysokość świata

  max-island-height: 319
  sea-height: 0
  max-coords: 30000

max-coords=30000 daje graczom kwadrat +-30000 bloków od spawnu. Starczy na dziesiątki tysięcy wysp.

Schemat wyspy startowej

BentoBox trzyma wyspy startowe jako pliki .blu (blueprint) w plugins/BentoBox/addons/BSkyBlock/blueprints/. Domyślnie jest island.blu, klasyczny preset.

Struktura zawiera bloki, byty, inwentarze skrzyń. Format to spakowany JSON.

Własny schemat przez BentoBox builder

Najprostsza droga to wbudowany edytor.

/bsb blueprint open default

Otwiera testowy świat, w którym budujesz wyspę. Zaznaczasz obszar:

/bsb blueprint pos1   # stan w pierwszym rogu
/bsb blueprint pos2   # stan w przeciwleglym
/bsb blueprint copy
/bsb blueprint paste  # sprawdz
/bsb blueprint save my_island

Po save plik my_island.blu pojawia się w blueprints/. Podpinamy jako startową:

/bsb blueprint bundle save default

W config.yml:

island:
  default-blueprint-bundle: default

Własny schemat przez WorldEdit

Można też przez WorldEdit, jeśli tak wygodniej.

//wand
# zaznacz obszar drewniana siekiera
//copy
//schematic save my_island

Plik ląduje w plugins/WorldEdit/schematics/my_island.schem. Import:

/bsb blueprint import my_island

BentoBox konwertuje .schem do .blu. Podpinamy tak samo jak z builder.

Zasady dobrej wyspy startowej

  • Mała (10-15 bloków w poziomie), inaczej gracze nie czują potrzeby rozbudowy
  • Drzewo z liśćmi dla pierwszego drewna
  • Skrzynia z bazowym lootem: lód, wiadro lawy (dla cobble generatora), saplings, nasiona, jedzenie na pierwszy dzień
  • Tabliczka albo książka z podpowiedzią co robić
  • Nie ładujcie za dużo zasobów, traci się klimat survivalu

Przykład zawartości startowej skrzyni (config.yml -> bundles -> default -> contents albo przez GUI):

chest-contents:
  0: ICE:2
  1: LAVA_BUCKET:1
  2: MELON_SEEDS:1
  3: PUMPKIN_SEEDS:1
  4: CACTUS:1
  5: SUGAR_CANE:1
  6: BONE:2
  7: COOKED_BEEF:4
  8: OAK_SAPLING:2

Poziom wyspy

Dodatek BentoBox Level liczy łączną "wartość" bloków na wyspie. Rzadsze bloki dają więcej punktów. Wynikiem jest ranking wysp.

Instalacja:

cd ~/skyblock/plugins/BentoBox/addons
wget -O Level.jar "https://github.com/BentoBoxWorld/Level/releases/download/2.15.0/Level-2.15.0.jar"

Po restarcie pojawia się plugins/BentoBox/addons/Level/config.yml i block_values.yml. Ten drugi jest centralny, mówi ile punktów daje każdy blok.

block-values:
  COBBLESTONE: 1
  STONE: 1
  DIRT: 1
  OAK_LOG: 4
  DIAMOND_BLOCK: 1000
  NETHERITE_BLOCK: 5000
  BEACON: 2000
  DRAGON_EGG: 10000

Gracze uruchamiają liczenie przez /island level. Proces asynchroniczny, na małych wyspach trwa sekundy, na ogromnych do minuty. Wynik trafia do /island top.

Anty-farm limity

Ryzyko: gracze będą spamować jeden tani blok (cobblestone z generatora), żeby podbić poziom. Zepsuje balans. Rozwiązanie: cap na typ bloku.

limits:
  COBBLESTONE: 10000
  DIRT: 5000
  STONE: 10000

Ponad limit bloki już nie dają punktów. Diamentowe bloki zwykle nie mają limitu, bo fizycznie trudno ich naspamić tyle.

Wyzwania (Challenges)

Challenges addon to system questów. Gracz dostaje zadania: zbierz 10 kłód, zcraftuj piec, wyhoduj pszenicę. Za ukończenie nagrody.

cd ~/skyblock/plugins/BentoBox/addons
wget -O Challenges.jar "https://github.com/BentoBoxWorld/Challenges/releases/download/0.9.0/Challenges-0.9.0.jar"

Challenge leży w plugins/BentoBox/addons/Challenges/bskyblock_world/. Jest domyślny zestaw default.json do kopiowania i edycji.

Struktura jednego challenge:

{
  "uniqueId": "gather_wood",
  "friendlyName": "Gather Wood",
  "description": [
    "Cut down 10 oak logs",
    "to start your journey"
  ],
  "icon": "OAK_LOG:1",
  "order": 1,
  "environment": ["NORMAL"],
  "challengeType": "INVENTORY",
  "requiredItems": [
    { "material": "OAK_LOG", "amount": 10 }
  ],
  "takeItems": true,
  "rewardText": "You received some bread and a wooden axe",
  "rewardItems": [
    { "material": "BREAD", "amount": 16 },
    { "material": "WOODEN_AXE", "amount": 1 }
  ],
  "rewardMoney": 50,
  "rewardExperience": 100
}

Typy challenge:

  • INVENTORY gracz musi mieć przedmioty (są zabierane przy oddaniu)
  • ISLAND na wyspie muszą być N bloków (sprawdzone skanem)
  • OTHER własne warunki przez placeholders

Edycja przez GUI jest wygodniejsza:

/challenges admin edit

Otwiera menu do tworzenia nowych challenge, edycji istniejących, ustawiania nagród.

Poziomy challenge

Challenge łączy się w poziomy (Novice, Adept, Expert itd). Aby odblokować kolejny poziom, trzeba zamknąć N challenge obecnego. To daje progresję i poczucie rozwoju.

Ekonomia

Bez ekonomii Skyblock traci połowę sensu. Pieniądze, sklep, handel.

Vault + EssentialsX Economy

Vault to most między pluginami ekonomii. Bez niego nic się nie łączy. EssentialsX daje samą ekonomię.

cd ~/skyblock/plugins
wget -O Vault.jar "https://github.com/MilkBowl/Vault/releases/download/1.7.3/Vault.jar"
wget -O EssentialsX.jar "https://github.com/EssentialsX/Essentials/releases/download/2.20.1/EssentialsX-2.20.1.jar"

W plugins/Essentials/config.yml:

starting-balance: 100
currency-symbol: '$'
max-money: 10000000000
min-money: 0

Startowe 100 monet daje nowemu coś do wydania.

ChestShop dla sklepów graczy

ChestShop pozwala graczom postawić tabliczkę obok skrzyni i sprzedawać albo kupować przedmioty.

wget -O ChestShop.jar "https://github.com/ChestShop-authors/ChestShop-3/releases/download/3.12.2/ChestShop.jar"

Gracz stawia skrzynię, tabliczkę nad nią:

[Username]
64
B 100 : 200 S
Diamond

Linia 1 to nick (automat). Linia 2 to ilość. Linia 3 to B <cena kupna> : <cena sprzedazy> S. Linia 4 to przedmiot.

ShopGUIPlus dla sklepu admina

Płatny ($15 na SpigotMC), ale de facto standard na serwerowe sklepy z ładnym GUI. Gracz wpisuje /shop i widzi kategorie (blocks, tools, food, materials), ceny, ilości. Wygodny, konfigurowalny.

Darmowe alternatywy: TheNewEconomy + DynamicShop, albo simple-gui-shop.

Zbalansowane ceny

Częsty błąd to wycenić rzadkie bloki wysoko a zużywalne nisko. Wynik to szybka inflacja. Trzymaj ceny tak, żeby gracz nie mógł godzinę farmować cobble i kupić pełnej zbroi.

Gruba skala dla klasycznego skyblocka:

PrzedmiotKupnoSprzedaż
Cobblestone (64)325
Węgiel (1)103
Żelazo (1)8025
Diament (1)500150
Blok diamentu45001350
Perła kresu (1)30075

Spread między kupnem a sprzedażą (40-70%) blokuje nieskończone pętle przez sklep.

Warpy i odwiedziny

VisitIsland i komendy BSkyBlock

Bazowy BSkyBlock ma komendy odwiedzin:

/is warp <gracz>     # teleport na jego wyspe (jesli dozwolone)
/is warps            # lista dostepnych warpow
/is setwarp          # opublikuj swoj warp

Właściciel wyspy publikuje warp, żeby inni mogli przyjść. Domyślnie warp otwarty dla wszystkich, prawa można dostroić.

Dodatek Warps

Osobny dodatek Warps daje ładne GUI z listą, wyszukiwaniem, kategoriami.

cd ~/skyblock/plugins/BentoBox/addons
wget -O Warps.jar "https://github.com/BentoBoxWorld/Warps/releases/download/1.12.0/Warps-1.12.0.jar"

W config.yml konfigurujesz ikonę warpu (zwykle czerwona tabliczka), bloki markera, koszt postawienia warpu (w ekonomii).

Publiczny spawn i safe zone

Serwer potrzebuje zwykłej mapy (world) ze spawnem. Tam gracze lądują przy pierwszym wejściu i stamtąd idą na skyblock. Przez WorldGuard:

/rg define spawn
/rg flag spawn pvp deny
/rg flag spawn build deny -w world
/rg flag spawn interact allow
/rg flag spawn entry allow

Globalny flag na świat skyblock też to deny pvp poza strefą wysp, jeśli nie chcemy pvp między wyspami.

PvP i drużyny

Bezpieczna wyspa, strefa PvP

Standardowy układ: wyspa bez pvp, między wyspami albo w osobnej arenie pvp dozwolone.

W plugins/BentoBox/addons/BSkyBlock/config.yml:

island:
  flags:
    PVP_OVERWORLD:
      default: false
      setting: false
    PVP_NETHER:
      default: false
      setting: false
    PVP_END:
      default: true
      setting: true

default: false wyłącza pvp na wyspie. Właściciel może włączyć w menu flag /is settings.

Arena / Warzone

Na pvp między graczami robimy osobny świat albo strefę:

mvcreate warzone normal          # MultiVerse
/rg flag warzone pvp allow
/rg flag warzone keep-inventory false

Teleport tam przez /warp arena albo NPC.

Klany (team)

W BSkyBlock drużyny wyspy są wbudowane.

/is team invite <gracz>   # zapros
/is team accept           # przyjmij
/is team leave            # opusc
/is team kick <gracz>     # wywal (wlasciciel)
/is team promote          # awansuj na co-op

Max drużyny to max-team-size z configa. Członkowie dzielą wyspę: budują, rozbierają, nie biją się (jeśli pvp off).

Pod poważne klany stawia się SimpleClans albo Clans, z klan-chatem, wojnami, sojuszami, ale to leży nad skyblockiem a nie w nim.

Anty-grief na wyspie

Jeśli odwiedziny są otwarte, goście mogą nabroić. Ochrona w dwóch warstwach.

Flagi BentoBox

Każda wyspa ma zestaw flag (przez /is settings): PVP, BUILD, BREAK_BLOCKS, CONTAINERS, FIRE, EXPLOSIONS. Właściciel ustala komu wolno: tylko on, drużyna, co-op, zaufani albo wszyscy.

Admin ustawia defaulty w config.yml:

default-flags:
  VISITOR_KEEP_INVENTORY: true
  ANIMAL_NATURAL_SPAWN: true
  MONSTER_NATURAL_SPAWN: true
  WATER_FLOW: true
  LAVA_FLOW: false

Wyłączenie LAVA_FLOW blokuje klasyczny grief, gdy gość leje lawę na wyspę.

WorldGuard globalnie

Nad BentoBox warto ustawić globalny region WorldGuarda na świat skyblock:

/rg flag __global__ lava-flow deny -w bskyblock_world
/rg flag __global__ creeper-explosion deny -w bskyblock_world
/rg flag __global__ tnt deny -w bskyblock_world

BentoBox sam przepuszcza te rzeczy w granicach wyspy (jeśli flaga on), ale globalnie wszystko na deny.

Dodatek Limits

Ogranicza liczbę konkretnych bloków i bytów na wyspę. Chroni przed lag-maszynami i szalonymi farmami.

cd ~/skyblock/plugins/BentoBox/addons
wget -O Limits.jar "https://github.com/BentoBoxWorld/Limits/releases/download/1.10.0/Limits-1.10.0.jar"

W plugins/BentoBox/addons/Limits/config.yml:

blocklimits:
  DEFAULT:
    HOPPER: 100
    CHEST: 500
    PISTON: 50
    STICKY_PISTON: 50
    OBSERVER: 100

entitylimits:
  DEFAULT:
    VILLAGER: 20
    IRON_GOLEM: 10
    COW: 40
    PIG: 40
    CHICKEN: 40
    ZOMBIE: 30

Cap na hopper jest obowiązkowy. Bez niego jeden gracz buduje farmę z tysiącem lejków i serwer pada.

Backup i zapis świata

Serwer skyblock traci więcej niż zwykły. Jak graczowi zniknie wyspa, to są godziny pracy. Backup ważniejszy niż się wydaje.

Co backupujemy

  • plugins/BentoBox/ dane wysp (lokalizacje, drużyny, poziomy)
  • plugins/Essentials/userdata/ konta i inwentarze
  • bskyblock_world/, bskyblock_world_nether/, bskyblock_world_the_end/ same światy
  • world/ zwykły świat ze spawnem

systemd timer + restic

Instalujemy restic na deduplikacyjne kopie:

apt install restic -y

# init
restic init --repo /backup/skyblock

# pierwszy backup
restic backup --repo /backup/skyblock /home/mcserver/skyblock

Godzinny timer systemd:

# /etc/systemd/system/skyblock-backup.service
[Unit]
Description=Skyblock Backup

[Service]
Type=oneshot
ExecStart=/usr/bin/restic backup --repo /backup/skyblock \
    /home/mcserver/skyblock/plugins \
    /home/mcserver/skyblock/bskyblock_world \
    /home/mcserver/skyblock/bskyblock_world_nether \
    /home/mcserver/skyblock/bskyblock_world_the_end \
    /home/mcserver/skyblock/world
ExecStartPost=/usr/bin/restic forget --repo /backup/skyblock \
    --keep-hourly 24 --keep-daily 7 --keep-weekly 4
Environment=RESTIC_PASSWORD=your-strong-password
# /etc/systemd/system/skyblock-backup.timer
[Unit]
Description=Hourly Skyblock Backup

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target
systemctl enable --now skyblock-backup.timer

Pełny snapshot co godzinę, automatyczne czyszczenie: 24 godzinne, 7 dziennych, 4 tygodniowe.

Backup schematów

Osobno trzymaj plugins/BentoBox/addons/BSkyBlock/blueprints/ w gicie. Jeśli skastomizowałeś schemat startowy, to twoja praca i utrata boli.

Wydajność

Skyblock obciąża serwer nietypowo: dużo światów (world, nether, end plus kopie dla ground plans), każdy gracz aktywuje swój obszar. Kilka praktyk.

Pre-generation

Przed startem powiedz światu "wygeneruj kwadrat z góry". Wtedy żywa generacja nie laguje online.

Plugin Chunky:

cd ~/skyblock/plugins
wget -O Chunky.jar "https://github.com/pop4959/Chunky/releases/download/1.4.10/Chunky-1.4.10.jar"
/chunky world bskyblock_world
/chunky radius 5000
/chunky start

Generuje kwadrat 5000x5000 wokół spawnu. Na SSD kilka godzin. Lepiej raz zapłacić niż łapać piki lagu później.

Równolegle chunk workery

W paper-global.yml:

chunk-system:
  io-threads: 4
  worker-threads: 4

Zostaw kilka rdzeni CPU na chunki. Skyblock z 30+ aktywnymi wyspami bez tego zaczyna skakać.

Spawn limity

Moby mnożą się i zjadają TPS. W bukkit.yml:

spawn-limits:
  monsters: 40
  animals: 10
  water-animals: 5
  water-ambient: 5
  ambient: 5
ticks-per:
  monster-spawns: 4
  animal-spawns: 200
  water-spawns: 200

ticks-per.monster-spawns=4 (zamiast 1) mocno obniża nakład sprawdzania spawnów.

view-distance per-world

Paper wspiera różne view-distance na świat:

# paper-world-defaults.yml
chunks:
  view-distance: default
entities:
  spawning:
    despawn-ranges:
      monster:
        hard: 48
        soft: 24

10 w głównym świecie, 8 w skyblocku, kompromis między estetyką a wydajnością.

Monetyzacja: Tebex i sklep serwera

Komercyjne serwery skyblock kręcą się wokół donacji. Typowe przedmioty:

  • Wyspa VIP większa (protection-range 75 zamiast 50), więcej slotów w drużynie
  • Premium startowy loot z narzędziami i pancerzem
  • Crate styl lootbox z nagrodami w grze
  • Kosmetyki zwierzaki, efekty, tagi na chacie
  • Komendy /fly, /heal, /repair

Trzymajcie balans pay-to-win. Sprzedaż poziomów, diamentów, headstartu zabija konkurencję i wypędza zwykłych graczy. Sprzedawajcie wygodę i kosmetyki.

Tebex to standard integracji. Gracz płaci kartą, serwer przez RCON albo plugin Tebex wydaje zakup. Setup to jeden dzień.

Ochrona przed atakami

Serwery skyblock są często atakowane. Powody:

  1. Walka o topkę. Gracz widzi, że cudza wyspa mu ucieka w poziomie i zamiast grindować, zamawia DDoS na event.
  2. Wojny klanowe. PvP między klanami wylewa się poza grę.
  3. Dziecięca zemsta. Ban za dupowanie diamentów, odpowiedź atakiem.

Paper sam nie broni przed atakiem sieciowym. UDP i SYN flood zabijają połączenie gracza z serwerem, pluginy nic nie zrobią. Potrzebny filtr sieciowy przed hostingiem.

MineGuard to robi: filtr stoi przed hostingiem, przepuszcza legitymalny ruch Minecraftowy i odrzuca śmieci. Gracze nie zauważają różnicy, tyle że podczas ataków serwer zostaje online. Dla skyblocka z ekonomią i topem to krytyczne, jeden downtime w evencie odpycha graczy mocniej niż tydzień lagu.

Konfiguracja: DNS play.yourserver.pl na IP filtra, backend ustawiony. Resztę robi filtr sam.

Częste problemy

/is nic nie robi

Sprawdź, czy plugin załadowany:

/bentobox version
/plugins

Jeśli BentoBox jest czerwony, czytaj log startowy. Typowy powód to zła wersja Javy albo Paper.

Świat się nie generuje

Jeśli /is create nic nie robi albo wywala błąd, sprawdź czy światy istnieją:

/mvlist

Powinny być bskyblock_world, bskyblock_world_nether, bskyblock_world_the_end. Jeśli nie, BentoBox nie mógł ich stworzyć. Zwykle powody to limity chunków w server.properties albo konflikty z innymi pluginami generacji.

Gracze siedzą na jednej wyspie

To nie bug, tak działa max-team-size. Pierwszy zakłada wyspę, reszta dochodzi. Jak chcesz by każdy miał swoją, zmniejsz max-team-size albo dodaj quest "załóż swoją wyspę".

Liczenie poziomu laguje

Level addon skanuje wyspę blok po bloku. Na dużej wyspie to trwa. Rate limit:

# addons/Level/config.yml
task-speed: 40
update-task-speed: 100

task-speed to bloki na tick. Mniejsza wartość, mniej lagu, wolniejsze liczenie.

Jeden gracz zjada TPS

Przez /timings albo spark (/spark profiler) szukaj winowajcy. Zwykle to farmy z lejkami i skrzyniami. Limits addon powinien to odciąć, sprawdź capy.

Podsumowanie

Serwer skyblock na BentoBox + BSkyBlock startuje w jeden wieczór. Level, Challenges, Warps, Limits kolejny wieczór. Ekonomia z Vault + EssentialsX + ChestShop pół dnia. Pierwsi gracze przychodzą po pierwszej wzmiance w top-liście.

Potem zaczyna się prawdziwa praca: treść, eventy, nowe challenge, sezony, nagrody. Skyblock żyje dopóki żyje społeczność i dopóki serwer nie pada pod atakami. To pierwsze to planowanie, drugie to porządny filtr sieciowy przed hostingiem.


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