Seasonal SMP: jak zorganizować rotację sezonów na serwerze Minecraft

Seasonal SMP: jak zorganizować rotację sezonów na serwerze Minecraft

Sezonowe SMP dawno wyszły z niszy streamerów i stały się standardowym modelem dla każdego prywatnego serwera, który chce żyć dłużej niż trzy miesiące. W tym poradniku pokażę, jak pociąć serwer na sezony, co przenosić między nimi, jak archiwizować światy i jak nie pogrzebać community pustym resetem.

Po co w ogóle robić sezony

Każde długo działające SMP prędzej czy później uderza w tę samą ścianę. Weterani mają bazy rozciągnięte na tysiące bloków, nowi gracze spawnują się i od razu widzą czyjś monument nad spawnem, rynek martwy, achievementy zrobione, mobfarmy chodzą na autopilocie. Liczba graczy po cichu spada, a admin zaczyna szukać winy w pluginach. Najczęściej pluginy są w porządku. Problemem jest świat.

Sezony rozwiązują to wprost. Co N miesięcy zamykasz aktualny świat, archiwizujesz go i startujesz nowy. Wszyscy są na równej linii, nowi gracze trafiają na czysty spawn, a ty masz naturalny pretekst żeby zmienić tematykę albo zasady. HermitCraft działa w tym modelu, podobnie większość SMP wśród znajomych. Finałowy sezon Dream SMP zebrał dziesiątki milionów wyświetleń nie dlatego, że świat był wyjątkowy, tylko dlatego, że miał wyraźny koniec.

Krótko: sezon nadaje serwerowi łuk fabularny. Bez tego są to po prostu pliki na dysku.

Wybór długości sezonu

Nie ma jednej dobrej odpowiedzi, ale wskaźniki są wiarygodne.

  • 2 do 3 miesięcy dla aktywnych SMP, gdzie ludzie wchodzą kilka razy w tygodniu. Do tego czasu spawn jest postawiony, ekonomia działa, top gracze są w endgame, i bez resetu zaczynają odpływać.
  • 4 do 6 miesięcy dla średniego tempa, szczególnie na modpackach, gdzie progresja zajmuje więcej czasu.
  • 6 do 12 miesięcy dla wolnych serwerów RP albo vanilla SMP z małym składem grającym kilka godzin tygodniowo.

Poniżej dwóch miesięcy rzadko ma sens. Gracze nie zdążą zainwestować w bazy i każdy reset wygląda jak czyszczenie postępu bez powodu. Powyżej roku też ryzykownie. Pod koniec nikt nie pamięta, co było na początku, a archiwum robi się nie do okiełznania.

Datę zakończenia ustalam od startu sezonu i wpisuję w regulamin. Kończy to pytanie "kiedy reset" i mocno ułatwia planowanie eventów.

Co przenosi się między sezonami, a co nie

Główna zasada: to, co przy graczu, przenosi się; to, co przy świecie, resetuje się. Jeśli przeniesiesz ekwipunki albo balanse, nowy sezon staje się kontynuacją starego i sens resetu znika.

Sensowne do zachowania:

  • Role Discord przez DiscordSRV (donor, status, weteran)
  • Role nagród i achievementów sezonowych, np. Season 3 Survivor
  • Globalne statystyki gracza: godziny, liczba sezonów, opcjonalnie killcount
  • Whitelist głównego składu
  • Konfiguracje pluginów i samą listę pluginów
  • Tabele wyników sezonowych jako statyczne archiwum (screenshot albo eksport)

Zawsze resetowane:

  • Wszystkie trzy wymiary: world, world_nether, world_the_end
  • Ekwipunki graczy, skrzynie endera, shulkery w cudzych bazach
  • Salda Vault / EssentialsX
  • Domy, warpy, dane /sethome
  • Stare regiony WorldGuard
  • Miasta i terytoria jeśli grało się na Towny lub Lands

Rangi LuckPerms to osobna sprawa. Najczęściej zdejmuję rangi progresji (te zdobywane przez czas gry w poprzednim sezonie) i zostawiam rangi adminów oraz donorów. Jeśli rang jest niewiele, łatwiej odbudować drzewo od zera.

Archiwizacja starego świata

Archiwum przydaje się z dwóch powodów: sentyment i siatka bezpieczeństwa. Ktoś zechce zabrać swoją bazę jako mapę singleplayer, ktoś nagrywał YouTube i potrzebuje finalnego cięcia po resecie. A jeśli następny sezon nie wypali, zawsze możesz cofnąć.

Schemat. Zatrzymujemy serwer czysto. Nie po prostu /stop na żywym świecie, najpierw flush save'ów:

# czysto, bez utraty danych
mc-send-to-console "save-off"
mc-send-to-console "save-all flush"
sleep 10

# teraz stop
systemctl stop minecraft

# archiwizujemy trzy wymiary razem
cd /opt/minecraft/server
tar -czf /backups/season-3-final.tar.gz world world_nether world_the_end

# dane graczy osobno
tar -czf /backups/season-3-playerdata.tar.gz \
    world/playerdata world/stats world/advancements

Kopia na S3 albo inny zdalny storage:

# rclone już skonfigurowany na twój bucket
rclone copy /backups/season-3-final.tar.gz s3:smp-archives/season-3/ \
    --progress --transfers 4

Ostatnia kopia na sprzęcie innego admina albo domowym NAS. Zasada 3-2-1: trzy kopie, dwa typy nośników, jedna offsite. Standardowo trzymam jedną lokalnie, jedną na S3, jedną na dysku domowym starszego moderatora.

Potem publikujesz link do archiwum jako mapy singleplayer. Na stronie albo w kanale #archives na Discordzie. To najlepsze źródło dobrej energii od graczy, którzy odeszli.

Ogłaszanie końca sezonu

Cichy shutdown bez ostrzeżenia zabija zaufanie szybciej niż słaby DDoS. Trzy do czterech tygodni przed datą publikujemy harmonogram:

  • Dokładna data i godzina ze strefami czasowymi
  • Co się przenosi, co resetuje (czysta lista, bez waty)
  • Tematyka następnego sezonu jeśli już zdecydowana
  • Data startu nowego sezonu
  • Event finałowy ostatniego dnia

Event finałowy to połowa wartości. Bitwa frakcji, ostatni raid na bazę adminów, wspólny stream, selfie na spawnie. Chodzi o to, żeby było wydarzenie, a nie "serwer wyłączył się o 23:59".

Dzień przed finałem otwieram whitelist dla alumni z poprzednich sezonów, żeby przyszli się pożegnać. To wyciąga ludzi, którzy dawno nie wchodzili, i część zostaje na nowy sezon.

Techniczny setup nowego sezonu

Po archiwizacji idzie praca z plikami. Przykład serwera Paper:

# serwer zatrzymany
cd /opt/minecraft/server

# kasujemy stare światy
rm -rf world world_nether world_the_end

# czyścimy cache pluginów związane ze starym światem
rm -rf plugins/WorldGuard/worlds
rm -rf plugins/dynmap/web/tiles

# opcjonalnie: nowy seed
sed -i 's/^level-seed=.*/level-seed=4815162342/' server.properties

Startujemy serwer, generuje świeże światy. Przy generatorach typu Terralith czy BiomesOPlenty plugin musi być załadowany przed pierwszym startem.

Salda Vault resetujemy z konsoli albo bezpośrednio w bazie:

-- EssentialsX z YAML userdata: po prostu usuń folder
-- Vault na MySQL z CMI lub EssentialsX-MySQL:
UPDATE user_data SET money = 0;
TRUNCATE TABLE essentials_homes;

Rangi progresji LuckPerms dla zwykłych graczy:

/lp creategroup default
/lp group default permission set essentials.spawn true
# per gracz:
/lp user <name> parent set default

Pre-generacja nowej mapy

Pierwszy dzień nowego sezonu prawie zawsze laguje. Trzydzieści osób wbija na spawn, chunki generują się w czasie rzeczywistym, TPS leci u wszystkich. Rozwiązanie znane: Chunky przed otwarciem.

/chunky world world
/chunky radius 5000
/chunky start

Promień 5000 bloków od spawnu zwykle starcza na pierwszy tydzień. Odpalamy dzień przed startem z pause-on-no-players: false i czekamy. Na SSD z porządnym CPU to 6 do 12 godzin. Po pre-genie restart i otwierasz bramy.

Dla większych map albo dalszej pre-genu Chunky może iść w tle po starcie z chunks-per-second: 4, żeby nie przeszkadzał graczom.

Tematyka sezonu

Zwykła vanilla działa zawsze, ale różnorodność trzyma ludzi. Tematyki, które stabilnie wchodzą:

  • Lifesteal: jedno serce za zabicie, zero serc to ban do końca sezonu. Plugin LifeSteal SMP albo własna logika w Skript.
  • Hardcore SMP: jedno życie, po śmierci spectator do końca sezonu.
  • Sezon podwodny: spawn pod wodą, ograniczone wyspy.
  • Sezon modded na Forge albo Fabric: zmiana na Create, Ad Astra, Cobblemon. Uwaga: to już nie Paper, większość pluginów nie działa.
  • Sezon bez endu: zamiast endgame customowi bossowie przez MythicMobs.

Sezony modded są technicznie cięższe. Gracze potrzebują customowego launchera, FPS spadnie, pluginy zamieniają się na mody. Jako jednorazowy event modded uderza mocno.

Sezonowe leaderboardy i nagrody

Pod koniec sezonu zawsze utrzymuję żywą topkę na Discordzie i na stronie. Wybór metryki: godziny, mob killsy, bloki rozbite, achievementy. Najuczciwsze są achievementy plus czas gry.

Dane ciągniemy pluginem Statistic albo bezpośrednio z world/stats/<uuid>.json. Top trzy dostają stałą rolę na Discordzie (S3 Champion, S3 Runner-up, S3 Bronze). Po kilku sezonach weterani mają stos kolorowych ról i to działa jako społeczny dowód.

Marketing następnego sezonu

Tydzień przed startem:

  • Teaser tematyki i nowych zasad na Discordzie i Twitterze/X
  • Kanał Telegram, jeśli jest
  • Post na r/admincraft albo właściwym subreddicie, jeśli serwer publiczny
  • Ping roli alumni na Discordzie
  • Trailer 30 do 60 sekund z zarchiwizowanej mapy

Trailer da się skleić w Replay Mod ze starych nagrań plus kilka ujęć z pre-genionej nowej mapy. To wystarczy, pełne CGI to przesada.

FAQ

Ile zwykle trwa sezon SMP

Standard to 2 do 3 miesięcy dla aktywnych serwerów, 4 do 6 dla średniego tempa, 6 do 12 dla wolnych projektów RP. Poniżej dwóch miesięcy bez sensu, powyżej roku trudno utrzymać. Datę końca ustal od startu sezonu i wpisz w regulamin.

Jak zorganizować archiwum starych światów

Zatrzymaj serwer czysto, tar -czf trzy wymiary, wrzuć na S3, plus jedna kopia na sprzęcie innego admina. Zasada 3-2-1: trzy kopie, dwa typy nośników, jedna offsite. Archiwum publikujesz jako mapę singleplayer do pobrania.

Co przenosić między sezonami

Role Discord, status weterana, globalne statystyki, whitelist, konfiguracje pluginów. Światów, ekwipunków, sald, domów ani starych regionów WorldGuard nie. Rangi progresji LuckPerms zwykle resetujemy, donorskie zostają.

Czy da się zrobić seasonal modded SMP

Da się, ale to już nie Paper a Forge albo Fabric, i gracze potrzebują launchera z modami. Cobblemon, Create, Ad Astra dobrze działają jako tematyki sezonowe. Zaplanuj więcej czasu na testy packa i pomoc graczom przy instalacji.

Czy Chunky jest potrzebny dla małego sezonu

Nawet na serwerze 10 osobowym pre-gen 2000 do 3000 bloków usuwa lagi pierwszego dnia. Przy 30+ graczach bez Chunky na 5000+ bloków pierwsze godziny będą bolesne.

Jak nie stracić weteranów przy resecie

Ogłoszenie 3 do 4 tygodni wcześniej, event finałowy, archiwum świata do pobrania, stała rola alumni. I tematyka nowego sezonu pokazana z wyprzedzeniem, żeby człowiek miał powód wrócić, a nie wybierał między twoim serwerem a innym.

Czy resetować przywileje donor

Nigdy. Jeśli ktoś zapłacił, przywileje zostają na wszystkie kolejne sezony. Inaczej idziesz wprost w chargebacki i złe opinie. Resetuj tylko to, co zdobywało się przez grę.

Co dalej

Jeśli to twój pierwszy sezon, zacznij od trzech miesięcy i prostej tematyki vanilla, bez modów. Zbierz statystyki frekwencji, wczuj się w rytm community, i od drugiego sezonu planuj tematyki oraz eventy finałowe. Nie oszczędzaj na archiwum, storage jest tańszy niż wkurzona community. I zabezpiecz serwer przed DDoS z wyprzedzeniem: pusty pierwszy dzień nowego sezonu z powodu ataku zabija sezon szybciej niż jakikolwiek bug.


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