Discord
Towny : villes et nations
Wiki - Plugins

Towny : le plugin de villes et de nations

Towny Advanced est l'un des plugins les plus aboutis de Minecraft. Il permet aux joueurs de fonder des villes, de réclamer des parcelles, de former des nations, de collecter des taxes et de mener des guerres. Il fonctionne sur Paper, Spigot et Purpur à partir de la version 1.16 et est développé activement depuis plus de 15 ans.

Temps de lecture : ~10 min Plateforme : Paper / Spigot / Purpur

Qu'est-ce que Towny

Towny Advanced (souvent appelé simplement Towny) est un plugin de protection de terrain qui ajoute un système politique et économique complet à un serveur Minecraft. Au lieu de claims individuels comme dans GriefPrevention, Towny organise les joueurs autour de villes, et chaque ville gère collectivement une zone de terrain divisée en parcelles.

L'histoire du plugin remonte à 2010, ce qui en fait l'un des plugins développés depuis le plus longtemps dans toute l'histoire de Minecraft. Au fil des ans, il est devenu la référence des serveurs survie avec une dose de politique et d'économie. Vous le trouverez sur la grande majorité des serveurs « towny survival » ou « economy survival » du monde entier.

Towny comporte quatre niveaux de structure politique :

  • Résident : chaque joueur du serveur. Un résident peut rejoindre une ville ou fonder la sienne
  • Ville : un groupe de joueurs partageant une zone sous la direction d'un maire
  • Nation : une alliance de villes sous l'autorité d'un roi. Elle apporte des bonus et gère la politique entre les villes
  • Monde : chaque dimension (le monde principal, le Nether, l'End) peut avoir ses propres réglages Towny

Vous pouvez télécharger le plugin gratuitement depuis le dépôt GitHub officiel. Il nécessite Java 17+ et fonctionne sur Paper/Spigot 1.16.5+. Pour disposer de toutes les fonctions d'économie, il lui faut Vault et un plugin d'économie (par exemple EssentialsX).

Créer une ville

Fonder une ville est la première étape pour tout joueur qui veut son propre terrain. Avant de taper la commande, vérifiez que vous avez assez d'argent : l'admin peut fixer un coût pour fonder une ville (en général 500 à 5000 $).

/t new TownName        # fonde une nouvelle ville à votre position
/t claim               # réclame le chunk où vous vous trouvez (coûte de l'argent)
/t unclaim             # rend le chunk à la nature sauvage
/t claim outpost       # crée un avant-poste éloigné

La ville est fondée dans le chunk où vous vous trouvez au moment de taper la commande. Ce chunk devient le homeblock, le cœur de la ville. Le spawn de la ville (/t spawn) y est défini automatiquement. Le homeblock ne peut pas être déplacé sans déplacer tout le point de spawn : choisissez donc l'emplacement avec soin.

Après la fondation, vous pouvez acheter progressivement les chunks voisins avec /t claim. Chaque chunk coûte un prix unique (fixé par l'admin) et compte dans la limite de parcelles de la ville. La limite de base est généralement de 8 à 16 parcelles, mais elle augmente avec le nombre de résidents : chaque nouveau résident ajoute un bonus au total des parcelles disponibles.

La formule de base de la configuration par défaut :

Max plots = (residents + 1) * bonus_per_resident

Par exemple, une ville de 10 résidents avec un bonus de 8 parcelles par résident peut réclamer 88 chunks. C'est une surface énorme, et c'est pourquoi le recrutement de résidents est une stratégie essentielle.

Il vaut aussi la peine de planifier la forme de votre ville. Les chunks doivent se toucher (ou être des avant-postes). Il est impossible d'avoir des îlots de claims dispersés : chaque nouveau chunk doit être contigu à un chunk déjà réclamé. L'exception, ce sont les avant-postes (/t claim outpost), qui peuvent être loin du reste mais coûtent bien plus cher.

Gérer les parcelles

Chaque chunk réclamé est une parcelle. Par défaut, toutes les parcelles d'une ville appartiennent à la ville et sont gérées par le maire. Vous pouvez toutefois attribuer une parcelle à un résident précis ou lui donner un type particulier.

Types de parcelles

Towny définit plusieurs types de parcelles, chacun avec des permissions par défaut différentes :

  • Default : la parcelle de ville standard. Les permissions sont contrôlées par les réglages de la ville
  • Shop : une parcelle commerciale. Se définit avec /plot set shop. Les joueurs extérieurs peuvent y commercer même si le reste de la ville est fermé
  • Embassy : une parcelle qu'un joueur d'une autre ville, ou même sans ville, peut acheter ou louer. Utile pour créer des quartiers commerçants
  • Farm : une parcelle agricole. Les joueurs extérieurs peuvent récolter les cultures mais ne peuvent pas détruire les structures de la ferme
  • Arena : une parcelle PvP. Le PvP y est toujours actif, quels que soient les réglages généraux du serveur et de la ville
  • Wilds : une parcelle traitée comme un terrain hors de la ville, avec une liberté totale de destruction
  • Inn : permet aux joueurs sans ville de définir leur point d'apparition sur cette parcelle
  • Jail : une parcelle où sont envoyés les résidents punis
/plot set shop         # passe la parcelle au type shop
/plot set embassy      # passe la parcelle au type embassy
/plot set farm         # passe la parcelle au type farm
/plot set arena        # passe la parcelle au type arène PvP
/plot set name Name    # donne un nom personnalisé à la parcelle
/plot forsale 500      # met la parcelle en vente pour 500 $
/plot notforsale       # retire la parcelle de la vente

Permissions sur les parcelles

Chaque parcelle a des permissions indépendantes pour quatre groupes : Resident (les résidents de la ville), Nation (les joueurs de la même nation), Ally (les alliés) et Outsider (tous les autres). Les permissions sont de quatre types : Build (construire), Destroy (détruire), Switch (utiliser leviers, boutons, coffres) et ItemUse (utiliser des objets comme les seaux).

/plot perm set outsider build off    # empêche les étrangers de construire
/plot perm set resident switch on    # les résidents peuvent utiliser les boutons
/plot perm set ally destroy on       # les alliés peuvent détruire sur cette parcelle

Nations

Une nation est un niveau d'organisation supérieur aux villes. Un joueur (le roi) fonde la nation et y invite d'autres villes. Une nation peut faire de la diplomatie : former des alliances avec d'autres nations, déclarer des ennemis et organiser des efforts de guerre communs.

/n new NationName        # fonde une nation (le maire paie le coût de fondation)
/n add TownName          # invite une ville dans la nation
/n kick TownName         # retire une ville de la nation
/n ally add NationName   # envoie une proposition d'alliance à une autre nation
/n enemy add NationName  # déclare un ennemi (requis pour la guerre dans certains modes)
/n spawn                 # vous téléporte à la capitale de la nation
/n deposit amount        # dépose dans la banque de la nation
/n withdraw amount       # retire de la banque de la nation (roi uniquement)

Les avantages d'appartenir à une nation sont concrets. Chaque ville d'une nation reçoit un bonus à son nombre maximal de parcelles : par défaut +10 parcelles pour l'appartenance à une nation, plus des chunks supplémentaires selon la taille de la nation. Les grandes nations comptant beaucoup de villes peuvent offrir à chaque ville un bonus de 50 à 100 parcelles supplémentaires.

Une nation dispose d'une banque commune (la banque de la nation) avec laquelle le roi peut financer des guerres et la diplomatie ou subventionner les petites villes. Faire fonctionner une nation coûte une certaine somme chaque jour. Si la banque est vide, la nation s'effondre et toutes ses villes redeviennent indépendantes.

Structure du pouvoir dans une nation

  • Roi (King) : le fondateur ou le dirigeant désigné de la nation. Contrôle total de la banque, de la diplomatie et de la structure
  • Assistant de la nation (Nation Assistant) : peut gérer les villes et la diplomatie mais n'a pas accès à la banque
  • Capitale (Capital) : la ville du roi. Elle apporte des bonus à toute la nation. Changez de capitale avec /n set capital TownName

Grades et permissions

Towny dispose d'un système de grades intégré, indépendant de LuckPerms. Chaque ville peut créer ses propres grades personnalisés avec n'importe quel ensemble de permissions Towny.

Grades par défaut dans une ville

  • Maire (Mayor) : contrôle total de la ville. Peut réclamer des parcelles, collecter les taxes, expulser des joueurs et nommer des assistants et des grades. Un seul par ville
  • Assistant (Assistant) : peut gérer les résidents, les parcelles et les réglages de la ville. Ne peut pas réclamer ni abandonner de parcelles en dehors de la zone attribuée
  • VIP : un exemple de grade personnalisé. L'admin peut définir n'importe quels grades avec n'importe quelles permissions
  • Nouveau résident (Nomad/default) : un résident standard sans permission particulière en dehors de celles accordées par la ville
/t rank add Player RankName      # donne un grade à un joueur dans la ville
/t rank remove Player RankName   # retire le grade
/t set mayor Player              # transmet le titre de maire à un autre joueur

Les grades personnalisés se configurent dans plugins/Towny/settings/townyperms.yml. Vous pouvez créer des grades comme « Builder », « Guard » ou « Merchant », chacun avec son propre ensemble de commandes Towny que le joueur peut exécuter.

Permissions sur ses propres parcelles et sur celles des autres

Chaque résident peut définir les permissions des parcelles qui lui appartiennent directement (attribuées par le maire). Sur les parcelles de la ville (non attribuées), seuls le maire ou un assistant définissent les permissions. C'est une différence importante : un joueur peut avoir « sa » parcelle et la contrôler entièrement alors qu'elle appartient formellement à la ville.

Économie et taxes

Towny ajoute un vaste système financier. Chaque ville possède sa propre banque, qui reçoit les taxes des résidents et les dépôts manuels. La banque de la ville paie l'entretien de la ville (un coût quotidien) et les éventuelles dépenses de guerre.

Taxes

/t set taxes 50          # fixe une taxe quotidienne de 50 $ pour chaque résident
/t set taxes 5%          # une taxe en pourcentage du solde du joueur (au lieu d'un montant fixe)
/t set plottax 10        # une taxe sur chaque parcelle attribuée (quotidienne)
/t set plotprice 200     # le prix d'achat d'une parcelle pour un résident
/t set shoptax 20        # une taxe supplémentaire sur les parcelles de type shop

Les taxes sont collectées automatiquement une fois par jour (à l'heure du « nouveau jour » de Towny, que l'admin peut configurer). Si un joueur ne peut pas payer la taxe, il peut être expulsé automatiquement de la ville. Cela dépend de la configuration de l'admin.

Banque de la ville et dépôts

/t deposit 1000          # dépose 1000 $ de votre portefeuille dans la banque de la ville
/t withdraw 500          # retire de la banque (maire ou assistant uniquement)
/t balance               # affiche le solde de la banque de la ville

La banque de la ville est distincte des portefeuilles des joueurs. L'argent de la banque appartient à la ville : même si le maire part, la banque reste. Quand un nouveau maire reprend la ville, la banque va avec.

Entretien (upkeep)

Chaque ville paie un entretien quotidien proportionnel à son nombre de parcelles, ou un forfait fixé par l'admin. Si la banque de la ville ne peut pas couvrir l'entretien, la ville tombe : toutes les parcelles redeviennent sauvages et les résidents se retrouvent sans ville. C'est un mécanisme qui impose de rester actif et d'alimenter la banque.

Les nations paient aussi leur propre entretien. Les grandes nations avec beaucoup de villes paient davantage, ce qui freine naturellement l'expansion et encourage à bâtir des empires actifs plutôt que morts.

Guerre (Towny War)

Towny propose plusieurs modes de guerre. Par défaut, les serveurs font tourner Towny sans guerre active, et l'admin choisit la mécanique qui correspond au concept du serveur.

Modes de conflit

  • Pas de guerre (Off) : protection totale, aucun PvP lié au système politique. Convient aux serveurs familiaux
  • Towny War Event : des événements de guerre récurrents, annoncés par un admin ou lancés automatiquement. Pendant une période donnée (un week-end, par exemple), les villes peuvent attaquer les parcelles ennemies
  • Town Sieges : un mode moderne issu de l'extension officielle Towny-Sieges. Les joueurs assiègent une ville pendant un temps donné, et l'issue du siège décide qui prend le contrôle
  • Flag War : un mode à drapeau. Les attaquants doivent planter un drapeau sur une parcelle ennemie et le défendre pendant un temps donné pour la capturer

Fonctionnement de Siege War

Siege War (disponible comme plugin distinct pour Towny) est le mode de guerre le plus populaire sur les serveurs modernes. Un siège se déroule ainsi :

  1. Un joueur attaquant (qui doit appartenir à une nation ennemie) place une bannière près du centre de la ville attaquée
  2. Le compte à rebours du siège démarre (3 jours par défaut). Les deux camps peuvent marquer des points en tuant des ennemis dans la zone du siège
  3. Quand le temps est écoulé, si les attaquants ont plus de points, la ville paie des réparations de guerre. Elle peut éventuellement être absorbée par la nation attaquante
  4. Un siège peut être repoussé : les défenseurs doivent récolter plus de points que les attaquants

Siege War ne supprime pas automatiquement les villes. C'est davantage un levier politique (imposer des réparations, changer les alliances) qu'un mécanisme de conquête totale. Les serveurs avec Siege War restent ainsi dynamiques sans être destructeurs.

Commandes

Commandes des joueurs : ville

Commande Description
/t Affiche les informations sur votre propre ville
/t TownName Affiche les informations sur n'importe quelle ville
/t new TownName Fonde une nouvelle ville
/t join TownName Rejoint une ville ouverte
/t leave Quitte votre ville actuelle
/t add Player Invite un joueur dans la ville (maire)
/t kick Player Expulse un joueur de la ville (maire)
/t claim Réclame le chunk où vous vous trouvez
/t unclaim Abandonne le chunk de vos claims
/t spawn Vous téléporte au spawn de la ville
/t spawn TownName Vous téléporte au spawn d'une autre ville (si elle est publique)
/t set spawn Définit le spawn de la ville à votre position actuelle (maire)
/t set board Text Définit la description de la ville affichée quand quelqu'un entre sur une parcelle
/t toggle open Active ou désactive le mode ouvert (les joueurs peuvent rejoindre sans invitation)
/t toggle pvp Active ou désactive le PvP dans la ville
/t toggle fire Active ou désactive la propagation du feu dans la ville
/t delete Supprime la ville (irréversible, maire uniquement)

Commandes des joueurs : nation

Commande Description
/n Informations sur votre propre nation
/n new NationName Fonde une nation (vous devez être maire)
/n add TownName Invite une ville dans la nation (roi)
/n ally add NationName Propose une alliance à une autre nation
/n enemy add NationName Déclare une nation ennemie
/n spawn Vous téléporte à la capitale de la nation

Commandes d'admin

/ta town new TownName Player      # crée une ville pour un joueur sans frais
/ta town delete TownName          # supprime une ville
/ta nation new NationName Player  # crée une nation
/ta givebonus TownName 20         # donne à une ville un bonus de +20 parcelles
/ta regenerate TownName           # restaure le terrain après une destruction
/ta unclaim circle 5              # abandonne les parcelles dans un rayon de 5 chunks
/ta reload                        # recharge la configuration de Towny

Configuration

Towny conserve sa configuration dans le dossier plugins/Towny/settings/. Les fichiers principaux sont :

  • config.yml : la configuration centrale : coûts, limites, taxes, intervalles, mécaniques
  • townyperms.yml : les permissions Towny pour les groupes de joueurs et pour les grades dans les villes et les nations
  • language/ : tous les textes du plugin, modifiables

Les paramètres les plus importants de config.yml

# Coûts
new_town_price: 1000.0           # coût de fondation d'une ville
new_nation_price: 5000.0         # coût de fondation d'une nation
claim_price: 200.0               # prix pour réclamer un chunk
claim_price_per_plot: true       # si le prix augmente à chaque claim

# Entretien, prélevé une fois par jour
town_upkeep: 100.0               # coût de base de l'entretien d'une ville
town_upkeep_multiplied: false    # si true : entretien * nombre_de_parcelles
nation_upkeep: 1000.0            # coût de l'entretien d'une nation

# Limites de parcelles
max_plots_per_resident: 8        # combien de parcelles un résident peut s'attribuer
default_town_plots: 8            # nombre de parcelles de départ d'une nouvelle ville
plots_per_resident: 8            # bonus de parcelles par résident

# Nouveau jour de Towny (moment où taxes et entretien sont prélevés)
new_day_time: "0:00"             # heure du serveur pour le nouveau jour

# Protection
prevent_explosions: true         # bloque les explosions dans les villes
prevent_fire_spread: true        # bloque la propagation du feu
prevent_mob_damage_blocks: true  # les mobs ne détruisent pas de blocs dans les villes

# PvP
town_pvp: false                  # PvP par défaut dans les nouvelles villes (OFF)
nation_zone_pvp: false           # PvP dans la zone de la nation

Configuration de la monnaie et intégration de Vault

Towny détecte automatiquement Vault et utilise le plugin d'économie qui y est connecté. Assurez-vous que Vault est installé, car Towny le vérifie au démarrage du serveur.

Towny Chat

Les canaux de chat viennent de TownyChat, l'extension de chat officielle de Towny (un plugin distinct) :

  • /tc : chat de la ville (seuls les résidents de votre ville le voient)
  • /nc : chat de la nation (toutes les villes de la nation)

Le format des messages de chaque canal se configure dans chatconfig.yml. Vous pouvez ajouter aux formats de chat des placeholders comme {townname}, {nationname} et {rank}.

Conseils pour les admins

Premier lancement

Avant que les joueurs ne rejoignent le serveur, parcourez config.yml et fixez des coûts adaptés à votre économie. Les erreurs les plus courantes sont des coûts trop bas (tous les joueurs fondent une ville dès le premier jour) ou trop élevés (personne ne fonde de ville pendant une semaine). Un bon équilibre consiste à fixer le coût de fondation d'une ville à l'équivalent de 2 à 3 jours de jeu actif.

  • Fixez un entretien supérieur à zéro : sans entretien, les villes mortes encombrent la carte pour toujours. L'entretien impose de rester actif ou condamne les villes inactives à disparaître
  • Activez deny_unclaim_when_bankrupt : sans cela, les joueurs peuvent abandonner des parcelles quand la banque est vide pour éviter la dette. Bloquez cette possibilité
  • Limitez la proximité des villes entre elles : le paramètre min_distance_from_town_homeblock impose une distance minimale entre les villes. 5 chunks est le minimum par défaut ; relevez-le à 10-15 pour des zones tampons plus larges
  • Activez town_ruin_time : au lieu de supprimer immédiatement une ville en faillite, elle peut passer à l'état de « ruines » pendant quelques jours en conservant ses structures. Les joueurs peuvent la racheter, sinon elle est supprimée à l'expiration du délai
  • Utilisez /ta regenerate avec précaution : la régénération du terrain après une destruction est irréversible. Faites toujours une sauvegarde

Intégrations avec d'autres plugins

  • Vault : obligatoire. L'économie de Towny ne fonctionne pas sans lui
  • EssentialsX : le moteur d'économie compatible avec Vault le plus utilisé
  • LuckPerms : s'intègre aux grades de Towny via le contexte towny_rank. Vous pouvez attribuer automatiquement des grades LuckPerms selon un grade Towny (par exemple, le maire reçoit le préfixe « Mayor »)
  • Dynmap-Towny : une extension de Dynmap qui dessine les frontières des villes et des nations sur la carte en ligne. Très populaire sur les serveurs Towny : les joueurs peuvent voir la politique du monde sans se connecter
  • ShopGUI+ / QuickShop Hikari : les boutiques qui utilisent l'économie de Vault s'accordent très bien avec les taxes de Towny. Les joueurs gagnent de l'argent dans les boutiques et le dépensent pour faire tourner leurs villes

Problèmes courants et solutions

  • Les joueurs ne peuvent pas réclamer de parcelle : vérifiez la limite de parcelles (/t affiche utilisées/max). Relevez le bonus avec /ta givebonus, ou baissez max_plots_per_resident pour libérer plus de place
  • Les taxes ne sont pas collectées : assurez-vous que le serveur tourne à l'heure définie dans new_day_time. Si le serveur redémarre à ce moment-là, la collecte peut être sautée
  • Une ville disparaît après un redémarrage : c'est probablement un problème de base de données. Towny peut utiliser flatfile (fichiers yml) ou MySQL/MariaDB. Sur les gros serveurs, utilisez toujours MySQL, car flatfile peut se corrompre
  • Erreurs « Town already exists » : cherchez d'anciennes données dans plugins/Towny/data/. Des fichiers restent parfois pour des villes supprimées

Sauvegarder les données de Towny

Les données de Towny (si vous utilisez flatfile) sont stockées dans plugins/Towny/data/. Sauvegardez ce dossier avec le reste du serveur. Si vous utilisez MySQL, des dumps de base de données classiques suffisent. Towny crée aussi ses propres sauvegardes dans plugins/Towny/backups/, et le nombre de sauvegardes conservées se règle avec backup_count.

Articles liés : EssentialsX, Vault, LuckPerms, catalogue des plugins.