Documentation officielle

Village Defense Pro Wiki

Guide complet pour installer, configurer et exploiter Village Defense Pro sur un serveur Paper ou Spigot.

Compatibilité : Spigot / Paper 1.17 → 1.21.x — Java 17

Wiki basé sur la documentation v1.3 avec architecture interne, setup complet, système de vagues avancé, waypoints, réseau, API publique et procédures de dépannage.

Multi-arènes GUI admin complet H2 / MySQL API Bukkit publique PlaceholderAPI native Gameplay avancé Waypoints
Démarrage rapide

Commandes essentielles

/vd join [arène] /vd rejoin /vdadmin /vdadmin setup <id>
Vagues + boss Tours et pièges Kits à rôles Progression persistante

Résumé rapide

Village Defense Pro est un plugin PvE multi-arènes où les joueurs défendent un village contre des vagues de monstres.

Fonctionnalités principales
  • Système de vagues, bonus waves et boss waves
Compatibilité runtime
Spigot / Paper 1.17.1 → 1.21.x
Hooks optionnels
OldCombatMechanics
💡
Le plugin fonctionne sans aucun de ces hooks — ils sont tous optionnels.

Architecture

Installation

Installation en 4 étapes depuis le fichier .jar.

  1. Placez VillageDefensePro-1.3.jar dans le dossier plugins/ de votre serveur.

Fichiers et dossiers générés

plugins/VillageDefensePro/ ├── config.yml ├── lang/ │ ├── fr.yml │ ├── en.yml │ └── de.yml ├── arenas/ └── schematics/

Première configuration

Le point d'entrée admin est /vdadmin (alias : /vda). Sans argument, il ouvre le GUI admin si l'expéditeur est un joueur.

ℹ️
Le GUI admin principal permet de gérer : arènes, langue, base de données, schematics, niveaux requis des kits et configuration BungeeCord.

3.1 Langue

  1. Depuis le GUI admin, ouvrez Langue.

3.2 Base de données

  1. Depuis le GUI admin, ouvrez Base de Données.
💡
Utilisez H2 pour commencer simplement. Passez en MySQL pour un réseau ou une persistance centralisée.

3.3 BungeeCord

  1. Ouvrez BungeeCord depuis le GUI admin.

3.4 Niveaux requis des kits

  1. Ouvrez Niveaux des Kits depuis le GUI admin.

Commandes joueur

Commande principale : /vd — Alias : /villagedefense, /vdef

Commande Description
/vd join [arène]Rejoindre une arène accessible.

Commandes admin

Commande principale : /vdadmin (alias : /vda).

Commande Description
/vdadmin create <id>Créer une nouvelle arène.

Permissions

Permission Description
villagedefense.playAccès au jeu et aux arènes actives.

Démarrage rapide d'une première arène

Flux recommandé pour avoir une arène opérationnelle rapidement.

  1. Créez l'arène :
    /vdadmin create village_01

Setup complet d'une arène

Le setup se fait dans l'ArenaSetupGUI et avec la baguette de configuration obtenue via /vdadmin setup <id>.

8.1 Champs à configurer en priorité

Champs obligatoires
  • Nom affiché
Champs optionnels recommandés
  • Panneau de join

8.2 Référence des boutons du Setup GUI

BoutonAction
NomNom affiché de l'arène

8.3 Modes de la baguette de configuration

DEFAULT Shift+Clic gauche : ajouter spawn mob — Shift+Clic droit : ajouter emplacement tour

8.4 Ordre recommandé pour un setup propre

  1. Définir Nom, Min, Max

8.5 Validation avant publication

  • La zone est bien délimitée

Disponibilité d'arène

Chaque arène possède un mode de disponibilité qui contrôle qui peut la voir et la rejoindre.

ModeComportementUsage recommandé
ACTIVE Visible et rejoignable normalement par tous les joueurs. Arène en production.

Options avancées d'arène

10.A Mode de limite d'arène

Comportement quand un joueur tente de sortir des bornes de l'arène (pos1/pos2) en cours de partie. Configurable depuis l'ArenaPositionsGUI.

ModeComportementAdapté pour
PUSH_BACK (défaut) Le mouvement est annulé, le joueur reçoit un message d'alerte. Cartes classiques avec murs.

10.B Limite de vague

Quand les joueurs atteignent la vague N, la partie se termine automatiquement en victoire. Configurable depuis l'ArenaOptionsGUI.

  • Clic : saisir un nombre de vagues
💡
Sans limite de vague, la partie continue jusqu'à la défaite. Avec limite atteinte, un message de victoire spécifique est diffusé.

10.C Récompenses de fin de partie

Configurables depuis le bouton Récompenses dans l'ArenaSetupGUI. S'appliquent à tous les joueurs présents, victoire ou défaite.

Dépôt Vault
  • Activer / désactiver via clic
Commandes console
  • Ajouter des commandes via le bouton Ajouter

10.D Limite de tentatives

Limite le nombre de parties par joueur sur une fenêtre de temps glissante. Indépendante par arène. Configurable depuis l'ArenaOptionsGUI (slot 21).

  • Clic gauche : définir la limite (nombre entier > 0)
ℹ️
Un joueur peut rejoindre le lobby et partir sans consommer de tentative. L'incrément se produit uniquement au lancement effectif de la partie. Les données sont persistées dans la table vd_arena_attempts créée automatiquement.

Cycle de partie

Une partie suit un cycle complet avec reset automatique de l'arène en fin de match.

  1. Lobby d'attente
Le village
  • Des habitants doivent être protégés
Éléments runtime
  • Scoreboard dédié

Spectateurs, mort et rejoin

Quand un joueur meurt

  • Il respawn proprement et passe en mode spectateur custom

Quand un joueur se déconnecte

  • Un jeton de rejoin est conservé temporairement

Kits

Cinq kits à rôles distincts. Chaque kit possède des compétences actives, passives et un niveau requis configurable.

Guardian

Tours

6 types de tours, chacune avec 3 niveaux d'amélioration et 2 spécialisations au niveau max.

TourSpécialisation ASpécialisation B
ArcherMulti ShotIncendiary Arrow
ℹ️
Chaque tour se pose sur un slot dédié, a un propriétaire, peut être vendue ou remplacée. Le TowerConfigGUI permet par arène d'activer/désactiver, changer le coût et le niveau requis de chaque tour.

Pièges

Trois types de pièges posables sur des slots dédiés, avec cooldown et affichage d'état.

Slow Trap — ralentissement

Chaque piège dispose d'un affichage d'état, peut être retiré et suit son propre cooldown.

Shop, atouts et enchantements

Shop

Le shop peut fonctionner via le coffre de l'arène ou via le fallback shop interne.

Nourriture

Atouts

AtoutEffet
VitalitéAugmente les cœurs maximum, cumulable
Vitalité

Enchantements

Le villageois enchanteur ouvre un GUI personnalisé. Les prix de base de chaque option sont configurables par arène via l'EnchantPricesGUI.

Sharpness

Power-ups

Les power-ups apparaissent au sol et restent 45 secondes maximum.

Power-upDuréeEffet
Resistance20 secondesRésistance III
Resistance Speed Strength Regeneration Zombie Clear Instant Kill Double Damage
⚠️
Purge élimine tous les mobs actifs sauf le boss. Il ne doit pas déclencher de fin de vague prématurée — vérifiez ce point lors de la validation de votre arène.

Progression, XP, niveaux et succès

Le plugin gère une progression complète et persistante par joueur.

Données suivies
  • XP totale et niveau
Succès intégrés
first-blood zombie-slayer zombie-legend survivor-i survivor-ii survivor-iii veteran wealthy millionaire

Leaderboards

Top kills
TypeConfigurationComportement
GUI /vd top Intégré automatiquement Classement global accessible par les joueurs
ℹ️
L'hologramme par arène nécessite la table vd_arena_stats, créée automatiquement au démarrage.

Schematics

Le plugin supporte les schematics pour les tours, les marqueurs de slot et les points d'entrée monstres. Ils peuvent être globaux ou locaux à une arène.

ARCHER TREBUCHET MAGE ICE LIGHTNING CANNON SPAWN_MONSTER TOWER_SLOT

Utilisation

  1. Ouvrez Schematics depuis le GUI admin ou le setup GUI.

Langues et messages

Tous les messages visibles sont externalisés dans des fichiers de langue. Le changement se fait depuis le LanguageGUI.

plugins/VillageDefensePro/lang/ ├── fr.yml ├── en.yml └── de.yml

Le système couvre : chat, lore, GUI, scoreboard, panneaux, progression et messages admin.

Base de données

Le DatabaseGUI permet de choisir le backend, configurer la connexion et recharger.

database: type: SQLITE host: localhost port: 3306 name: villagedefense username: root password: '' pool-size: 10
BackendValeur configUsage recommandé
H2 localSQLITEServeur simple, démarrage rapide

PlaceholderAPI

Si PlaceholderAPI est installé, l'expansion native %villagedefense_*% est enregistrée automatiquement. Sans lui, le plugin fonctionne normalement.

%villagedefense_plugin_version% Version du plugin
%villagedefense_api_version% Version de l'API publique
%villagedefense_player_coins% Pièces du joueur
%villagedefense_player_level% Niveau du joueur
%villagedefense_arena_wave% Vague courante de l'arène du joueur
%villagedefense_player_current_arena_name% Nom affiché de l'arène actuelle du joueur
%villagedefense_arena_id% ID de l'arène actuelle
%villagedefense_arena_village01_wave% Vague courante d'une arène ciblée par ID
%villagedefense_arenas_running% Nombre d'arènes actuellement en cours

API publique Bukkit

Le plugin expose une API Bukkit publique pour les plugins externes — battle pass, quêtes, missions, succès externes.

Point d'entrée

VillageDefenseApi api = Bukkit.getServicesManager().load(VillageDefenseApi.class);

Exemple de lecture

VillageDefenseArenaSnapshot arena = api.getArenaSnapshot("village_01"); int wave = arena.getCurrentWave(); int lives = arena.getVillageLives(); VillageDefensePlayerSnapshot player = api.getPlayerSnapshot(uuid); int level = player.getLevel(); String kitId = player.getSelectedKitId();

Capacités principales

  • Lire les snapshots joueurs et d'arènes
  • Lire les définitions de succès
  • Savoir si un joueur est en arène ou en spectateur
  • Attribuer des pièces ou de l'XP
  • Débloquer un succès

Événement public

VillageDefenseProgressEvent ARENA_JOIN, WAVE_COMPLETE, GAME_WIN, GAME_LOSS, XP_EARNED, LEVEL_UP, ACHIEVEMENT_UNLOCKED, POWERUP_PICKUP

VDPRO Hub Addon

Le Hub Addon sert de couche réseau entre votre hub et vos serveurs Village Defense Pro. Il expose une entrée joueur propre, un panneau d'administration dédié et les composants visibles côté réseau comme les leaderboards et les panneaux d'arène.

🌐
L'addon est prévu pour les hubs standalone comme pour les réseaux BungeeCord ou Velocity. Il s'appuie sur MySQL pour lire les arènes réseau et router les demandes de join ou spectate.

25.1 Fonctionnement côté joueur

  1. Le joueur ouvre le menu avec /vdhub ou /vdhub play.
  2. Le bouton Partie Rapide cherche automatiquement l'arène la plus disponible.
  3. Le bouton Liste des Arènes affiche une vue paginée de toutes les arènes visibles.
  4. Dans cette liste, clic gauche pour rejoindre, clic droit pour entrer en spectateur.

25.2 Éléments hub exposés en jeu

Leaderboards flottants
  • Rotation automatique entre Kills, Vagues et Parties.
  • Lecture des données depuis la table vd_players.
  • Nombre d'entrées et fréquence de refresh configurables.
  • Persistance dans data.yml après redémarrage.
Panneaux d'arène
  • Un panneau peut être lié à une arène précise.
  • L'état est mis à jour dynamiquement: attente, démarrage, en jeu, inter-vague, fin, hors ligne.
  • Un clic permet de rejoindre ou d'observer l'arène.
  • Ajout et suppression se font depuis le GUI admin.

25.3 Réseau, proxy et admin

SujetDétails
Mode proxy Détection automatique du mode auto, bungeecord, velocity ou none.
Arènes réseau Lecture périodique de la table vd_network_arenas avec cache thread-safe des serveurs et arènes actifs.
Joins cross-serveur Les demandes de join et spectate sont écrites dans vd_hub_pending pour être consommées côté serveur cible.
GUI admin Le panneau /vdhub admin permet de gérer signs, leaderboards, return location, statut réseau et reload.

25.4 Commandes et permissions

Commandes
CommandeDescription
/vdhubOuvre le menu joueur. Alias: /vdh.
/vdhub adminOuvre le panneau d'administration du hub addon.
/vdhub reloadRecharge config.yml et data.yml.
Permissions
PermissionDescription
vdprohub.playUtiliser le GUI joueur Village Defense depuis le hub. Par défaut: tout le monde.
vdprohub.adminAdministration complète du Hub Addon. Inclut le setup et le reload.
vdprohub.admin.setupConfigurer signs, leaderboards et return location.
vdprohub.admin.reloadRecharger la configuration de l'addon.

Workflow complet de mise en ligne

  1. Installez le plugin et démarrez le serveur.

Checklist finale avant production

  • La base de données fonctionne et les joueurs se sauvegardent correctement

Support

💬
Pour toute question, rejoignez le Discord Obsidian Labs. L'équipe répond aux questions de support et d'exploitation directement.
ℹ️
Consultez aussi FEATURES.md pour la vue synthétique des fonctionnalités et gardez cette page comme référence d'exploitation détaillée.