Towny: SMP сервер с городами и нациями, полный гайд

Towny: SMP сервер с городами и нациями, полный гайд

Towny - это плагин про основание городов, объединение их в нации и защиту территорий от посторонних. Ниже разбор: чем он отличается от Factions, как настроить на Paper 1.20-1.21, какие команды нужны игрокам, что лежит в townyperms.yml, и как прикрутить войны, карту и LuckPerms.

Что такое Towny Advanced и почему именно он

Оригинальный Towny написал ElgarL в 2009 году, но активная ветка с 2014-го - это Towny Advanced под руководством LlmDl. Сейчас именно её все имеют в виду, когда говорят "Towny". Старые форки давно мёртвые, нет смысла их даже искать.

Идея простая: игрок берёт чанк, делает его центром города (homeblock), потом докупает соседние чанки за внутриигровые деньги. Внутри города никто кроме горожан не может ломать или ставить блоки. Несколько городов объединяются в нацию, у нации есть столица, союзники и враги.

В чём разница с Factions: Factions заточен под PvP-войны, силовой захват чанков, постоянный конфликт. Towny спокойнее, упор на экономику, налоги, развитие города. Города не отбираются силой по умолчанию, для войн ставят отдельные аддоны вроде SiegeWar. Если ваш сервер про мирное строительство и торговлю с лёгким налётом политики, берите Towny. Если хотите чистый рейд-сервер, смотрите Factions или Lands.

Ещё одно сравнение, которое часто всплывает: Lands - современная альтернатива с UI на табличках, чуть проще для новичков. Но Towny выигрывает за счёт зрелости (десять с лишним лет патчей), огромного количества аддонов и более глубокой кастомизации прав.

Установка на Paper 1.20-1.21

Towny официально поддерживает Paper, Spigot, Purpur. На CraftBukkit тоже работает, но никто им давно не пользуется. Folia пока не поддерживается из-за внутренней архитектуры плагина (см. FAQ).

Что нужно:

  • Paper 1.20.x или 1.21.x (свежая сборка с paper.io)
  • Vault - обёртка над экономикой, без неё налоги и стоимость городов работать не будут
  • Любой экономический плагин: EssentialsX Economy, CMI, TheNewEconomy
  • Опционально: LuckPerms для прав, Dynmap или BlueMap для карты

Базовая установка:

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 и EssentialsXChat - с https://essentialsx.net

После первого старта Towny создаст папку plugins/Towny/ со всеми конфигами. Не лезьте сразу всё править, дайте ей запуститься хотя бы один раз, чтобы файлы сгенерировались полностью.

Команды игрока: основа

Минимальный набор, который реально пригодится каждому:

/town new <название>          основать город (homeblock - текущий чанк)
/town claim                   присоединить чанк к городу
/town unclaim                 отказаться от чанка
/town invite <ник>            пригласить жителя
/town kick <ник>              выгнать жителя
/town set mayor <ник>         передать мэрство
/town deposit <сумма>         положить в банк города
/town withdraw <сумма>        снять (только мэр)
/town spawn                   телепорт к homeblock города
/plot claim                   купить плот внутри города (если выставлен на продажу)
/plot forsale <цена>          выставить свой плот
/resident friend add <ник>    разрешить другу строить на своём плоте

/nation new <название>        основать нацию (нужно быть мэром)
/nation add <город>           добавить город в нацию
/nation ally add <нация>      союз с другой нацией
/nation enemy add <нация>     объявить врагом
/nation king <ник>            передать королевство

Игрокам обычно достаточно /town, /plot, /resident. Команды нации нужны только мэрам и королям.

Полезный совет: на старте сервера повесьте на спавн табличку с тремя командами. /town new MyCity для основания, /town claim чтобы присоединить чанк, /town spawn чтобы вернуться. Этого достаточно, чтобы 80% игроков разобрались сами.

Конфиг townyperms.yml: права жителя, мэра, короля

Файл plugins/Towny/townyperms.yml управляет тем, что может делать игрок в зависимости от его роли. Это самое важное место для тонкой настройки. Структура:

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

Принцип такой: nomad - игрок без города, resident - в любом городе, towns.default - резидент в своём городе, towns.mayor - мэр, towns.ranks.* - кастомные ранги, которые мэр сам раздаёт через /town rank add <ник> <ранг>. Аналогично для наций.

Ранги ассистента и шерифа очень удобны: мэр уезжает в отпуск, передавать мэрство страшно, а ассистент с правом на claim спокойно расширяет город без риска угнать казну.

config.yml: цены, налоги, лимиты

Главный конфиг лежит в plugins/Towny/settings/config.yml. Файл огромный, но узловых параметров штук пятнадцать. Самое важное:

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 означает, что один житель даёт городу право на 8 чанков. Город из 5 человек может заклеймить до 40 чанков (плюс max_townblocks как стартовый минимум). Это естественный регулятор размера, без него один-два игрока выгребают пол-карты.

daily_taxes.enabled: true плюс налог в банке города заставляет мэра следить за казной. Если денег не хватает, Towny начинает анклеймить чанки автоматически (см. town.delete_town_block_when_unable_to_pay_tax).

Глобальные настройки PvP, fire, explosions, mobs - это дефолты для новых городов. Игрок-мэр может потом переключать их через /town toggle pvp и так далее, если разрешите в townyperms.yml.

Экономика: налоги, аренда плотов, банк нации

Towny умеет три типа налогов:

  • Налог на город - нация снимает с города ежедневно. Платится из банка города, не из карманов жителей.
  • Налог на жителя - город снимает с каждого резидента. Если резидент не может заплатить, его выкидывает из города.
  • Аренда плота - резидент-владелец плота берёт деньги с друзей, которым разрешил строить.

Включаются в config.yml секцией economy.daily_taxes. Время начисления - по умолчанию полночь по часовому поясу сервера, регулируется new_day_time.

Плоты внутри города можно продавать и сдавать. Мэр или владелец делает /plot forsale 500, любой резидент покупает через /plot claim. Дальше владелец может выставить аренду:

/plot set rent 50            50 монет в день
/plot fr                     отказ от аренды (forrent)

Банк нации пополняется налогом с городов. Король тратит его на войны, союзников, баннеры - что вы туда настроите через аддоны.

PvP, мобы, огонь, взрывы

Town-флаги переключаются командой /town toggle <флаг>:

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

Глобальные ограничения в config.yml под секцией 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

Это правила для wilderness, дикой местности вне городов. По умолчанию ставлю false на build/destroy/switch и true на mobs - так нельзя гриферить под претензией "тут не было клейма", но мобы спокойно спавнятся и качаются игроки.

unclaimed_zone_ignore нужен, чтобы игроки могли косить траву и собирать сухие кусты вне города - иначе скучно бегать по враждебной саванне.

Войны: SiegeWar и Flagwar

Голый Towny не даёт захватывать чужие города. Для PvP-сервера ставится один из двух аддонов.

SiegeWar - современный, активно развивается. Атакующая нация ставит баннер у города (siege banner), идёт таймер. Жители обороняются, атакующие удерживают точку. По итогу либо город переходит к захватчикам, либо платит репарации, либо защитники сжигают баннер. Реалистичная политика.

/swa <название>     начать осаду
/sw siege            статус осады

Конфиг SiegeWar отдельный, лежит в plugins/SiegeWar/. Главные параметры: длительность осады, минимальное расстояние между баннерами, требование быть в нации, чтобы атаковать.

Flagwar - старая школа. Атакующий ставит флаг на чанк жертвы, идёт обратный отсчёт, защитники сбивают флаг или нет. Проще, но грубее - воюют отдельные чанки, а не города целиком. Подходит для короткой быстрой PvP без большой политики.

На SMP с упором на ролеплей и нации лучше SiegeWar. На жёстком PvP - Flagwar.

Карта: Dynmap-Towny и BlueMap-Towny

Чтобы города отображались на веб-карте, ставится Dynmap или BlueMap плюс соответствующий мост. Без них карта будет, но без границ городов.

# 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

# Или BlueMap (выглядит сильно лучше, рендерит 3D)
# bluemap.jar + bluemap-towny.jar

После рестарта города появятся как цветные полигоны с названиями. Цвета задаются в plugins/Dynmap-Towny/Dynmap-Towny.yml, можно сделать столицу нации одного цвета, обычные города другого, врагов - красного.

BlueMap красивее, но грузит CPU при первичном рендере. Dynmap легче, работает на слабом железе. Для продакшна с большой картой я обычно беру Dynmap, для красивого SMP-демо - BlueMap.

LuckPerms + Towny

Towny использует свою систему рангов внутри городов и наций (townyperms.yml), но базовые права (towny.command.town.new, towny.chat.global и так далее) выдаются через обычный пермишн-плагин. Стандарт - LuckPerms.

Минимальная схема:

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

# Премиум-группа: больше плотов и outpost
lp group vip permission set towny.command.town.new true
lp group vip meta set bonus_townblocks 25

Дальше всё, что внутри города и нации, отдаётся через townyperms.yml. Не надо дублировать те же permission в LuckPerms, иначе мэр потеряет контроль над своими резидентами.

Анти-гриф: Towny + WorldGuard

Внутри клеймов WorldGuard не нужен. Towny сам режет ломание/постановку блоков, использование сундуков, дверей, нажимных плит. Конфликт получите ровно тогда, когда натравите оба плагина на одну зону.

Где WorldGuard всё ещё полезен:

  • спавн (флаги pvp deny, block-break deny, mob-spawning deny)
  • арены, ивент-зоны
  • лимит на использование TNT/end-кристаллов в wilderness, чтобы не дюпали ландшафт

Связка такая: WorldGuard на спавне и спец-зонах, Towny везде остальное. Никаких пересекающихся регионов.

FAQ

Towny vs Factions vs Lands - что выбрать

Factions - PvP-рейд сервер, постоянные войны и отбор территории. Lands - современный новичковый, простой UI, меньше глубины. Towny - средний путь: экономика, налоги, нации, политика, опциональные войны через SiegeWar. Если ваш сервер про длительную игру и города на месяцы, берите Towny. Если про кулак и быстрый кач - Factions.

Можно ли играть в Towny на крекеде

Да. Towny не привязан к UUID-аутентификации Mojang. На крекед-сервере с AuthMe или nLogin Towny работает корректно, имена жителей сохраняются по нику. Единственное: при смене ника игрок теряет доступ к городу, потому что в базе остаётся старый ник. Для премиум-сервера эта проблема решается через UUID-режим в database.yml.

Как ограничить размер города

Три параметра в config.yml:

  • town.max_townblocks - жёсткий потолок, сколько чанков может иметь любой город
  • town.ratio_townblocks_per_resident - сколько чанков даёт один житель
  • town.max_residents_per_town - максимум жителей в городе (0 = без лимита)

На SMP я ставлю max_townblocks: 64, ratio: 8, max_residents: 0. Это даёт городу из 8 человек ровно 64 чанка - сбалансированный максимум, который не съедает карту.

Совместим ли Towny с Folia

На момент 1.21 - нет. Folia требует регион-локального исполнения, а Towny ходит по всему миру одним потоком, особенно при дневной обработке налогов и снятий клеймов. LlmDl публично не планирует Folia-порт в ближайшее время. Если вам нужен Folia, смотрите Lands - он анонсировал поддержку.

Можно ли запретить захват городов вообще

Да. Не ставьте SiegeWar и Flagwar - и Towny из коробки не даёт никому отбирать чужой город. Единственные способы потерять город: мэр сам делает /town delete, либо город не платит налог нации и распускается, либо не платит апкип за чанки и они анклеймятся по одному в день. Чисто экономическая механика.

Что такое outpost и зачем он нужен

Outpost - удалённый чанк города, не граничащий с homeblock. Создаётся через /town claim outpost, стоит дороже обычного чанка (price_outpost). Полезен для удалённой шахты, портала в Незер, фермы. Лимит outpost задаётся town.max_outposts.

Как сделать спавн города

Мэр стоит на нужном чанке (обязательно внутри клейма города) и пишет /town set spawn. Дальше любой резидент по /town spawn телепортируется туда. Кулдаун и стоимость регулируются в config.yml секцией spawning.

Что дальше

Стартовый чек-лист после установки:

  • проверьте, что Vault видит экономику: /vault-info или /eco balance от тестового аккаунта
  • сразу пройдитесь по townyperms.yml и поправьте ранги под ваш сценарий, не оставляйте дефолт
  • включите daily_taxes и поставьте max_townblocks под размер карты, иначе через месяц увидите города по 500 чанков
  • решите про войны на старте: SiegeWar - обратной дороги почти нет, игроки привыкают к политике
  • для публичного сервера обязательно ставьте антигриф на wilderness через unclaimed_zone_* флаги, иначе ландшафт закопают за неделю

Дальше - либо аддоны (SiegeWar, Towny Camps для временных лагерей, Towny Histories для логов), либо плотный кастом через townyperms.yml. Базы хватит на старт большого SMP, остальное добавляется по мере роста аудитории.


Sunucunuzu DDoS Saldırılarından Koruyun

5 dakikada kurulumla ücretsiz koruma. 1 TB bant genişliği dahil.

Ücretsiz Deneyin


İlgili Makaleler