Towny: serwer SMP z miastami i narodami, kompletny przewodnik

Towny: serwer SMP z miastami i narodami, kompletny przewodnik

Towny to plugin o zakładaniu miast, łączeniu ich w narody i ochronie terytorium przed obcymi. Niżej: czym różni się od Factions, jak ustawić go na Paper 1.20-1.21, jakie komendy faktycznie są potrzebne graczom, co siedzi w townyperms.yml i jak dodać wojny, mapę web i LuckPerms.

Czym jest Towny Advanced i dlaczego ten fork

Oryginalne Towny napisał ElgarL w 2009 roku, ale aktywnie utrzymywana gałąź od 2014 to Towny Advanced pod LlmDl. To właśnie o nim mówią dziś, gdy padnie słowo "Towny". Stare forki dawno umarły, nie ma sensu ich szukać.

Pomysł jest prosty: gracz bierze chunk, robi z niego centrum miasta (homeblock), potem dokupuje sąsiednie chunki za wewnętrzną walutę. W mieście tylko mieszkańcy mogą stawiać i niszczyć bloki. Kilka miast łączy się w naród, naród ma stolicę, sojuszników i wrogów.

Czym różni się od Factions: Factions skupia się na wojnach PvP, siłowym przejmowaniu chunków i ciągłym konflikcie. Towny jest spokojniejsze, nacisk na ekonomię, podatki, rozwój miast. Miast nie da się standardowo przejąć siłą, do wojen służą dodatki w stylu SiegeWar. Jeśli twój serwer to spokojne budowanie i handel z lekką polityką, bierz Towny. Czysty raid-serwer, patrz Factions albo Lands.

Inne częste porównanie: Lands to nowoczesna alternatywa z UI na tabliczkach, trochę łatwiejsze dla nowych. Ale Towny wygrywa dojrzałością (10+ lat patchy), ogromnym ekosystemem dodatków i głębszym sterowaniem uprawnieniami.

Instalacja na Paper 1.20-1.21

Towny oficjalnie wspiera Paper, Spigot i Purpur. CraftBukkit też działa, ale nikt go już nie używa. Folia nie jest wspierana z powodu architektury wewnętrznej pluginu (patrz FAQ).

Co potrzebne:

  • Paper 1.20.x lub 1.21.x (świeży build z paper.io)
  • Vault jako most ekonomii, bez niego podatki i ceny miast nie działają
  • dowolny plugin ekonomii: EssentialsX Economy, CMI, TheNewEconomy
  • opcjonalnie: LuckPerms do uprawnień, Dynmap lub BlueMap do mapy web

Podstawowa instalacja:

cd /home/mc/server/plugins
wget https://github.com/TownyAdvanced/Towny/releases/latest/download/Towny.jar
wget https://github.com/MilkBowl/Vault/releases/latest/download/Vault.jar
# EssentialsX i EssentialsXChat - z https://essentialsx.net

Po pierwszym starcie Towny tworzy folder plugins/Towny/ ze wszystkimi configami. Nie zaczynaj od razu w nim grzebać, daj się odpalić raz, niech pliki wygenerują się w pełni.

Komendy gracza: podstawa

Minimum, którego każdy gracz faktycznie używa:

/town new <nazwa>             założenie miasta (aktualny chunk = homeblock)
/town claim                   dodanie chunka do miasta
/town unclaim                 zwolnienie chunka
/town invite <gracz>          zaproszenie mieszkańca
/town kick <gracz>            wyrzucenie mieszkańca
/town set mayor <gracz>       przekazanie burmistrzostwa
/town deposit <kwota>         wpłata do skarbu miasta
/town withdraw <kwota>        wypłata (tylko burmistrz)
/town spawn                   teleport do homeblocka
/plot claim                   kupno plota w mieście (jeśli wystawiony)
/plot forsale <cena>          wystawienie własnego plota
/resident friend add <gracz>  pozwolenie znajomemu na budowę na plocie

/nation new <nazwa>           założenie narodu (musisz być burmistrzem)
/nation add <miasto>          dodanie miasta do narodu
/nation ally add <naród>      sojusz z innym narodem
/nation enemy add <naród>     wypowiedzenie wrogowi
/nation king <gracz>          przekazanie korony

Graczom zwykle wystarczają /town, /plot, /resident. Komendy narodu interesują tylko burmistrzów i królów.

Praktyczna rada: na spawnie powieś tabliczkę z trzema komendami. /town new MyCity do założenia, /town claim do claimu, /town spawn do powrotu. To wystarczy 80% nowych graczy żeby ogarnęli temat sami.

townyperms.yml: prawa mieszkańca, burmistrza, króla

Plik plugins/Towny/townyperms.yml rządzi tym, co gracz może w zależności od roli. Najważniejsze miejsce do dostrojenia. Struktura:

nomad:
  - towny.chat.global
  - towny.command.town.new
  - towny.command.resident

resident:
  - towny.chat.town
  - towny.chat.nation
  - towny.command.plot.claim
  - towny.command.plot.forsale

towns:
  default:
    - towny.command.town.deposit
    - towny.command.town.spawn
  mayor:
    - towny.command.town.claim
    - towny.command.town.unclaim
    - towny.command.town.invite
    - towny.command.town.kick
    - towny.command.town.set
    - towny.command.town.withdraw
    - towny.command.town.toggle
  ranks:
    assistant:
      - towny.command.town.claim
      - towny.command.town.invite
    builder:
      - towny.command.plot.claim
    sheriff:
      - towny.command.town.kick

nations:
  default:
    - towny.command.nation.spawn
  king:
    - towny.command.nation.add
    - towny.command.nation.king
    - towny.command.nation.ally
    - towny.command.nation.enemy
  ranks:
    chancellor:
      - towny.command.nation.add
    diplomat:
      - towny.command.nation.ally

Logika: nomad to gracz bez miasta, resident to każdy w jakimkolwiek mieście, towns.default mieszkaniec we własnym mieście, towns.mayor burmistrz, towns.ranks.* to customowe rangi, które burmistrz rozdaje przez /town rank add <gracz> <ranga>. W narodach analogicznie.

Rangi assistant i sheriff bywają zbawienne: burmistrz wyjeżdża na urlop, oddanie pełnego burmistrzostwa wydaje się ryzykowne, ale assistant z prawem do claimu spokojnie rozbudowuje miasto bez ryzyka rozwalenia kasy.

config.yml: ceny, podatki, limity

Główny config siedzi pod plugins/Towny/settings/config.yml. Plik jest gigantyczny, ale na start liczy się około piętnastu pokręteł:

economy:
  price_new_town: 250.0
  price_new_nation: 1000.0
  price_claim_townblock: 25.0
  price_outpost: 100.0
  daily_taxes:
    enabled: true
    max_tax_amount_town: 1000.0
    max_tax_percent_town: 25.0

town:
  max_townblocks: 16
  townblocks_claimed_at_a_time: 1
  ratio_townblocks_per_resident: 8
  bonus_townblock_amount_unlimited: false
  max_residents_per_town: 0
  max_outposts: 3

nation:
  max_towns_per_nation: 0
  max_outposts: 5

global_town_settings:
  pvp:
    default: false
  fire:
    default: false
  explosions:
    default: false
  mobs:
    default: false

ratio_townblocks_per_resident: 8 znaczy, że jeden mieszkaniec daje miastu prawo do 8 chunków. Miasto z 5 osób może claimnąć do 40 chunków (plus max_townblocks jako podstawa). Naturalny ogranicznik wzrostu, bez niego dwóch graczy zeżre pół mapy.

daily_taxes.enabled: true plus podatek miejski zmusza burmistrza do pilnowania kasy. Gdy zabraknie pieniędzy, Towny zaczyna automatycznie unclaimować chunki (patrz town.delete_town_block_when_unable_to_pay_tax).

Globalne flagi PvP, ognia, eksplozji i mobów to defaulty dla nowych miast. Burmistrz może je później przełączać przez /town toggle pvp itd., jeśli pozwolisz w townyperms.yml.

Ekonomia: podatki, czynsz za ploty, bank narodu

Towny zna trzy typy podatków:

  • Podatek miejski - naród codziennie ściąga z miasta. Płacone z banku miasta, nie z kieszeni mieszkańców.
  • Podatek od mieszkańca - miasto ściąga od każdego rezydenta. Kto nie zapłaci, leci.
  • Czynsz za plot - właściciel plota kasuje znajomych, którym pozwolił budować.

Włączane w config.yml w sekcji economy.daily_taxes. Czas wyzwolenia to domyślnie północ czasu serwera, sterowany przez new_day_time.

Ploty w mieście da się sprzedawać i wynajmować. Burmistrz lub właściciel robi /plot forsale 500, mieszkaniec kupuje przez /plot claim. Następnie właściciel ustawia czynsz:

/plot set rent 50            50 monet dziennie
/plot fr                     wycofanie najmu (forrent)

Bank narodu zapełnia się z podatków miejskich. Król wydaje go na wojny, sojuszników, banery, w zależności co podłączysz dodatkami.

PvP, moby, ogień, eksplozje

Flagi miasta przełącza /town toggle <flaga>:

/town toggle pvp
/town toggle mobs
/town toggle fire
/town toggle explosion
/town toggle public
/town toggle taxpercent

Globalne ograniczenia są w config.yml pod global_town_settings.world_settings:

unclaimed:
  unclaimed_zone_build: false
  unclaimed_zone_destroy: false
  unclaimed_zone_switch: false
  unclaimed_zone_item_use: false
  unclaimed_zone_mobs: true
  unclaimed_zone_ignore:
    - GRASS
    - LONG_GRASS
    - DEAD_BUSH

To zasady dla wilderness, ziemi nieclaimowanej poza miastami. Domyślnie ustawiam build/destroy/switch na false, a mobs na true. Dzięki temu nikt nie griefuje pod pretekstem "tu nie ma claima", a moby normalnie spawnują się i gracze mogą levelować.

unclaimed_zone_ignore pozwala graczom kosić trawę i zbierać uschnięte krzaki poza miastem. Inaczej bieganie po wrogiej sawannie szybko się nudzi.

Wojny: SiegeWar i Flagwar

Czysty Towny nie pozwala przejmować cudzych miast. Na serwer PvP doinstalujesz jeden z dwóch dodatków.

SiegeWar - nowoczesny, aktywnie rozwijany. Atakujący naród stawia baner przy mieście celu (siege banner), leci timer. Mieszkańcy bronią, atakujący trzymają punkt. Wynik: miasto przechodzi do atakującego, płaci reparacje albo obrońcy palą baner. Realistyczna polityka.

/swa <nazwa>     start oblężenia
/sw siege        status oblężenia

SiegeWar ma własny config w plugins/SiegeWar/. Główne pokrętła: czas oblężenia, minimalny dystans między banerami, wymóg bycia w narodzie żeby atakować.

Flagwar - stara szkoła. Atakujący wbija flagę na chunk ofiary, leci odliczanie, obrońcy zbijają flagę albo nie. Prostsze, ale grubsze, walczą pojedyncze chunki, nie całe miasta. Dobre na krótkie szybkie PvP bez wielkiej polityki.

Na SMP z naciskiem na rolę i narody wybieraj SiegeWar. Na ostre PvP - Flagwar.

Mapa web: Dynmap-Towny i BlueMap-Towny

Żeby miasta pojawiły się na mapie web, instalujesz Dynmap albo BlueMap plus pasujący most. Bez mostu mapa będzie, ale bez granic miast.

# Dynmap
wget https://dev.bukkit.org/projects/dynmap/files/latest -O Dynmap.jar
wget https://github.com/TownyAdvanced/Dynmap-Towny/releases/latest/download/Dynmap-Towny.jar

# Albo BlueMap (wygląda dużo lepiej, renderuje 3D)
# bluemap.jar + bluemap-towny.jar

Po restarcie miasta pojawiają się jako kolorowe wielokąty z nazwami. Kolory ustawia się w plugins/Dynmap-Towny/Dynmap-Towny.yml. Możesz pomalować stolice narodów na jeden kolor, zwykłe miasta na inny, wrogów na czerwono.

BlueMap wygląda ładniej, ale je CPU przy pierwszym renderze. Dynmap jest lżejszy i działa nawet na słabym sprzęcie. Na produkcji z dużą mapą zwykle biorę Dynmap, na efektowny pokaz SMP - BlueMap.

LuckPerms + Towny

Towny ma swoje rangi w miastach i narodach (townyperms.yml), ale podstawowe nody uprawnień (towny.command.town.new, towny.chat.global itd.) rozdaje normalny plugin uprawnień. Standard to LuckPerms.

Minimalne ustawienie:

lp group default permission set towny.chat.global true
lp group default permission set towny.command.town.new true
lp group default permission set towny.command.resident true
lp group default permission set towny.command.plot.claim true
lp group default permission set towny.command.plot.forsale true

# Grupa VIP: więcej plotów i outpostów
lp group vip permission set towny.command.town.new true
lp group vip meta set bonus_townblocks 25

Wszystko wewnątrz miasta i narodu wychodzi z townyperms.yml. Nie duplikuj tych samych nodów w LuckPerms, bo burmistrz straci kontrolę nad swoimi mieszkańcami.

Anti-grief: Towny + WorldGuard

Wewnątrz claimów WorldGuard nie jest potrzebny. Towny już blokuje stawianie/niszczenie bloków, otwieranie skrzyń, drzwi, płyty naciskowe. Konflikty pojawią się dokładnie wtedy, gdy oba pluginy zarządzają tą samą strefą.

Gdzie WorldGuard wciąż się przydaje:

  • spawn (flagi pvp deny, block-break deny, mob-spawning deny)
  • areny, strefy eventowe
  • limity TNT/end-crystal w wilderness, żeby nikt nie zdupował terenu

Schemat: WorldGuard na spawnie i strefach specjalnych, Towny wszędzie indziej. Żadnych zachodzących regionów.

FAQ

Towny vs Factions vs Lands - co wybrać

Factions to serwer raidów PvP, ciągłe wojny i przejmowanie ziemi. Lands to nowoczesny wariant przyjazny nowym, proste UI, mniej głębi. Towny to środek: ekonomia, podatki, narody, polityka, opcjonalne wojny przez SiegeWar. Jeśli serwer nastawiony na długie granie i miasta budowane miesiącami, weź Towny. Pięść i szybki level - Factions.

Czy Towny działa na crackedzie

Tak. Towny nie wymaga uwierzytelniania UUID Mojanga. Na serwerze cracked z AuthMe lub nLogin Towny działa poprawnie, mieszkańcy zapisywani są po nicku. Jeden haczyk: po zmianie nicku gracz traci dostęp do miasta, bo w bazie został stary nick. Na serwerze premium rozwiązuje to tryb UUID w database.yml.

Jak ograniczyć rozmiar miasta

Trzy pokrętła w config.yml:

  • town.max_townblocks - twardy sufit chunków na miasto
  • town.ratio_townblocks_per_resident - chunki na mieszkańca
  • town.max_residents_per_town - cap mieszkańców (0 = bez limitu)

Na SMP odpalam max_townblocks: 64, ratio: 8, max_residents: 0. Daje 8-osobowemu miastu dokładnie 64 chunki, zrównoważony sufit, który nie zżera mapy.

Czy Towny współpracuje z Folią

Stan na 1.21: nie. Folia wymaga wykonywania regionalnego, a Towny dotyka całego świata z jednego wątku, zwłaszcza przy codziennej obróbce podatków i odclaimowywaniu. LlmDl nie zapowiedział portu na Folię. Jeśli potrzebujesz Folii, popatrz na Lands, który zapowiedział wsparcie.

Czy da się całkowicie wyłączyć przejmowanie miast

Tak. Bez SiegeWar i Flagwar czyste Towny nie daje nikomu sposobu na przejęcie cudzego miasta. Jedyne sposoby utraty miasta: burmistrz robi /town delete, miasto nie płaci podatku narodowi i się rozpada, albo nie płaci utrzymania chunków i znikają one po jednym dziennie. Czysta mechanika ekonomiczna.

Co to outpost i po co

Outpost to oddalony chunk miasta, niegraniczący z homeblockiem. Tworzony przez /town claim outpost, kosztuje więcej niż zwykły chunk (price_outpost). Przydaje się do oddalonej kopalni, portalu do Netheru, farmy. Limit: town.max_outposts.

Jak ustawić spawn miasta

Burmistrz staje na wybranym chunku (musi być w obrębie claimów miasta) i robi /town set spawn. Później każdy mieszkaniec pisze /town spawn żeby się tam teleportować. Cooldown i koszt pod sekcją spawning w config.yml.

Co dalej

Lista startowa po instalacji:

  • sprawdź, czy Vault widzi ekonomię: /vault-info albo /eco balance z konta testowego
  • przejdź od razu przez townyperms.yml i dopasuj rangi do swojego scenariusza, nie zostawiaj defaultu
  • włącz daily_taxes i ustaw max_townblocks pod rozmiar mapy, inaczej za miesiąc zobaczysz 500-chunkowe metropolie
  • zdecyduj co do wojen na starcie: SiegeWar to droga w jedną stronę, gracze szybko przyzwyczajają się do polityki
  • na publiczny serwer obowiązkowo zamknij wilderness flagami unclaimed_zone_*, inaczej teren w tydzień zostanie zbombardowany

Dalej albo idziesz w głąb dodatków (SiegeWar, Towny Camps na tymczasowe obozy, Towny Histories na logi) albo w precyzyjny tuning townyperms.yml. Bazowy setup wystarczy na duży SMP-launch, reszta dorasta razem z bazą graczy.


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