Guide
Comment créer un plugin de quêtes Minecraft
Mis à jour le 18 octobre 2026
Les quêtes donnent aux joueurs une raison de jouer : tuer 20 zombies, miner 64 fers, apporter 10 pains à un villageois. Un plugin de quêtes, c'est trois choses : des objectifs qui écoutent les événements du jeu, une progression sauvegardée pour chaque joueur, et des récompenses. Définir les quêtes dans un fichier de config vous permet d'en ajouter de nouvelles sans toucher au code.
Remplacez les quêtes et les récompenses par les vôtres.
Générer ceci avec CodexeÉtape par étape
1.Choisissez les types d'objectifs
Commencez par quelques-uns : tuer un type de mob, casser ou poser des blocs, collecter des objets, fabriquer, atteindre un lieu, parler à un PNJ. Chaque quête est construite à partir de ceux-ci.
2.Définissez les quêtes dans un fichier
Chaque quête dans
quests.yml: un identifiant, un nom, une description, ses objectifs avec les quantités, les récompenses et les prérequis (une autre quête avant, une permission, un niveau).3.Suivez la progression de chaque joueur
Écoutez les événements derrière chaque objectif et ajoutez-les à la progression du joueur. Sauvegardez-la dans SQLite ou dans un fichier pour qu'elle survive aux déconnexions et aux redémarrages.
4.Affichez la progression
Un menu
/questsavec les quêtes actives et terminées, plus un message, un titre ou une boss bar quand la progression change.5.Donnez des récompenses
Des objets, de l'expérience, de l'argent via Vault, ou des commandes console comme
lp user %player% permission set ...pour tout le reste.6.Compilez et terminez une quête en jeu
Laissez Codexe le compiler, rejoignez le serveur de test, acceptez une quête et terminez-la. Ensuite, redémarrez et vérifiez que la progression et les récompenses ont bien été sauvegardées.
Les objectifs et les événements derrière eux
| Objectif | Événement | Détail à décider |
|---|---|---|
| Tuer des mobs | EntityDeathEvent | Compter seulement les éliminations du joueur, ou aussi celles de ses animaux et de ses flèches |
| Casser des blocs | BlockBreakEvent | Ignorer les blocs posés par le joueur, sinon les joueurs poseront et casseront le même bloc |
| Collecter des objets | Vérification de l'inventaire ou événement de ramassage | Si les objets sont retirés quand la quête est rendue |
| Fabriquer des objets | CraftItemEvent | La fabrication en shift-clic en crée plusieurs d'un coup |
| Atteindre un lieu | PlayerMoveEvent | Vérifier seulement quand le joueur change de bloc, pas à chaque mouvement |
| Parler à un PNJ | PlayerInteractEntityEvent | Quelle entité donne la quête |
Les donneurs de quêtes
Le donneur de quêtes le plus simple est une commande ou un menu. Pour un personnage dans le monde, un villageois ou un porte-armure avec un nom personnalisé et un tag PersistentDataContainer fonctionne sans autre plugin : le plugin le reconnaît quand un joueur fait un clic droit dessus. Si votre serveur utilise déjà un plugin de PNJ comme Citizens, nommez-le dans la demande pour que le plugin s'y connecte.
Exemple de description
« Un plugin de quêtes Paper 1.21.4 appelé Quests. Types d'objectifs : tuer des mobs, casser des blocs (non posés par des joueurs), collecter des objets et parler à un villageois tagué comme donneur de quêtes. Quêtes définies dans quests.yml avec nom, objectifs, quête requise et récompenses (objets, expérience, argent Vault, commandes console). /quests ouvre un menu avec les quêtes disponibles, actives et terminées. Progression affichée dans la barre d'action. Jusqu'à 3 quêtes actives. Les quêtes quotidiennes se réinitialisent à minuit, heure du serveur. Progression sauvegardée dans SQLite. »
Quêtes quotidiennes et répétables
- Indiquez quand elles se réinitialisent : à heure fixe chaque jour, ou 24 heures après que le joueur les a terminées.
- Indiquez si les quêtes quotidiennes sont aléatoires pour chaque joueur ou identiques pour tous.
- Stockez l'heure de la dernière réussite, pas un simple indicateur, pour que les réinitialisations fonctionnent même quand le serveur est éteint.
Questions
Les quêtes peuvent-elles utiliser PlaceholderAPI ?
Oui. Demandez des placeholders comme la quête active et sa progression, pour que les scoreboards et les listes tab puissent les afficher. Nommez PlaceholderAPI dans la demande pour qu'il soit ajouté comme dépendance.
Puis-je écrire des quêtes avec Skript ?
Les petits systèmes de quêtes tiennent dans un Skript avec des variables. Avec de nombreux types d'objectifs, des menus et une progression sauvegardée pour des centaines de joueurs, un plugin reste plus facile à garder rapide et organisé.
Comment vérifier que les quêtes fonctionnent ?
Jouez-les sur le serveur de test de Codexe, et ajoutez des tests avec vos propres mots, par exemple « un joueur normal lance /quests et voit un menu s'ouvrir ». Les tests vérifient les messages, les objets et les menus, pas les mobs ou les blocs du monde.
Créez votre plugin de quêtes
Ce prompt s'ouvre prêt à être envoyé :
“Un plugin de quêtes Paper 1.21.4 : types d'objectifs tuer des mobs, casser des blocs non posés par des joueurs, collecter des objets et parler à un villageois tagué ; quêtes dans quests.yml avec objectifs, quête requise et récompenses (objets, XP, argent Vault, commandes console) ; menu /quests avec les quêtes disponibles, actives et terminées ; progression dans la barre d'action ; 3 quêtes actives max ; quêtes quotidiennes réinitialisées à minuit ; progression sauvegardée dans SQLite.”
Générer ceci avec Codexe