Integration BetonQuest
QuestsTracker s'integre profondement avec BetonQuest. Cette page explique comment configurer vos quetes pour qu'elles apparaissent dans le menu et le suivi.
Principe de fonctionnement
- Une quete doit utiliser le template
trackedQuestpour apparaitre dans le menu - Le statut (verrouille/actif/termine) est gere par des events personnalises
- La progression est suivie via les events
nextStepetkgcomplete
Template trackedQuest
Pour qu'une quete apparaisse dans le menu QuestsTracker, son package BetonQuest doit utiliser le template trackedQuest.
Definir le template
Dans le fichier package.yml de votre quete :
templates:
- trackedQuest
questParameters:
questCategory: "Story" # Doit correspondre au displayName d'une categorie
Sans le template trackedQuest, la quete est invisible dans le menu, meme si tous les events sont correctement configures.
Tags BetonQuest
Le statut de chaque quete est determine par des tags internes geres automatiquement par les events du plugin :
| Tag | Role |
|---|---|
{questId}.questTrackable | La quete est debloquee (visible dans le menu) |
{questId}.tracked | La quete est en cours (statut Actif) |
{questId}.finished | La quete est terminee (statut Termine) |
Ces tags sont geres automatiquement par les events du plugin. Vous n'avez jamais besoin de les manipuler manuellement. Utilisez les events activeQuest, finishQuest et lockQuest a la place.
Cycle de vie d'une quete
Verrouillee → Active → Terminee
(aucun tag) (.questTrackable + .tracked) (.questTrackable + .finished)
- La quete est verrouillee par defaut (aucun tag)
- L'event
activeQuestajoute les tags.questTrackableet.tracked→ la quete devient active - Le joueur peut alors la suivre dans le scoreboard (jusqu'a 3 quetes simultanees)
- L'event
finishQuestretire.trackedet ajoute.finished→ la quete est terminee - L'event
lockQuestretire tous les tags → la quete redevient verrouillee
Events personnalises
QuestsTracker enregistre 5 events dans BetonQuest :
activeQuest
Active une quete — la rend visible et disponible dans le menu.
events:
activer_quete: "activeQuest ma_quete"
Effets :
- Ajoute les tags
ma_quete.questTrackableetma_quete.tracked - La quete passe au statut Actif
- Elle apparait dans le menu du joueur
- Si la categorie a
autoTrack: true, la quete est automatiquement suivie dans le scoreboard (jusqu'a 3 slots). Si les 3 slots sont occupes, une quete non-autoTrack est remplacee en priorite.
lockQuest
Verrouille une quete — la rend indisponible dans le menu.
events:
verrouiller_quete: "lockQuest ma_quete"
Effets :
- Retire les tags
ma_quete.questTrackable,ma_quete.trackedetma_quete.finished - La quete passe au statut Verrouille
- Elle apparait comme verrouillee dans le menu (ou est masquee selon les preferences du joueur)
finishQuest
Termine une quete.
events:
terminer_quete: "finishQuest ma_quete"
Effets :
- Retire le tag
ma_quete.trackedet ajoutema_quete.finished - La quete passe au statut Termine
- Elle reste visible dans le menu si le joueur affiche les quetes terminees
- Elle est retiree du suivi scoreboard et la progression est effacee
nextStep
Avance a l'etape suivante d'une quete.
events:
etape_suivante: "nextStep ma_quete"
Effets :
- Incremente le numero d'etape de la quete
- Met a jour le scoreboard en temps reel avec les nouveaux objectifs
- Reinitialise les objectifs completes de l'etape precedente
kgcomplete
Marque un objectif specifique comme complete dans l'etape courante.
events:
objectif_fait: "kgcomplete ma_quete mon_objectif"
L'event kgcomplete necessite deux parametres : l'ID du package et l'ID de l'objectif. L'ID de l'objectif doit correspondre au champ id dans la section objectives du quests_config.yml.
Effets :
- Marque l'objectif
mon_objectifcomme complete - Met a jour l'affichage dans le scoreboard (texte
inprogress→ textecompleted) - Utile pour les etapes avec plusieurs objectifs independants
Parametres de quete (questParameters)
Le bloc questParameters dans le package.yml configure comment la quete apparait dans le menu :
questParameters:
questCategory: "Story"
questReward:
fr-FR: "100 pieces d'or\nEpee en diamant"
en-US: "100 gold coins\nDiamond sword"
| Parametre | Obligatoire | Description |
|---|---|---|
questCategory | Non | Categorie du menu (defaut : defaultCategory de config.yml) |
questReward | Non | Texte des recompenses affiche dans le lore du menu (multilingue, \n pour les retours a la ligne) |
Categorie
La valeur de questCategory doit correspondre exactement au displayName d'une categorie definie dans config.yml.
Correspondance categories
| config.yml (cle) | config.yml (displayName) | BetonQuest (questCategory) |
|---|---|---|
story | "Story" | questCategory: "Story" |
secondary | "Secondary" | questCategory: "Secondary" |
dailyQuests | "Daily" | questCategory: "Daily" |
"Story" ≠ "story" ≠ "STORY". Utilisez exactement le meme texte que le displayName de votre categorie.
Sous-categories
Pour placer une quete dans une sous-categorie, utilisez le format avec point :
questParameters:
questCategory: "Daily.Monsters"
Le format est : displayName_categorie.displayName_souscategorie
Categorie par defaut
Si questCategory n'est pas specifie, la quete est placee dans la categorie definie par defaultCategory dans config.yml.
Exemple complet
Fichier BetonQuest (package.yml)
templates:
- trackedQuest
questParameters:
questCategory: "Story"
conversations:
guide_intro:
quester: "Guide"
first: "start"
NPC_options:
start:
text: "Bienvenue ! Etes-vous pret pour votre premiere quete ?"
pointer: accepter,refuser
player_options:
accepter:
text: "Oui, je suis pret !"
events: activer_quete
refuser:
text: "Pas encore..."
events:
# Activer la quete
activer_quete: "activeQuest premiere_quete"
# Passer a l'etape 2
etape2: "nextStep premiere_quete"
# Marquer un objectif comme complete (2 params : package + objectif)
objectif_forge: "kgcomplete premiere_quete visiter_forge"
# Terminer la quete
fin_quete: "finishQuest premiere_quete"
objectives:
visiter_forge:
type: location
location: "100;64;200;world;5"
events: objectif_forge,etape2
battre_mannequins:
type: mobkill
mob: ZOMBIE
amount: 3
events: fin_quete
Fichier quests_config.yml correspondant
Le fichier supporte le format multilingue (recommande) et l'ancien format simple. La langue est determinee par le parametre language dans la config BetonQuest.
quests:
premiere_quete:
title:
fr-FR: "<gold>Le Reveil du Heros</gold>"
en-US: "<gold>The Hero's Awakening</gold>"
locked_description:
fr-FR: "Parlez au guide du village pour commencer."
en-US: "Talk to the village guide to begin."
finished_text:
fr-FR: "Vous avez fait vos premiers pas !"
en-US: "You took your first steps!"
steps:
'1':
text:
fr-FR:
- "Parlez au guide du village"
- "Acceptez la quete"
en-US:
- "Talk to the village guide"
- "Accept the quest"
'2':
text:
fr-FR:
- "Visitez la forge"
en-US:
- "Visit the forge"
objectives:
- id: "visiter_forge"
inprogress:
fr-FR: "Se rendre a la forge"
en-US: "Go to the forge"
completed:
fr-FR: "<green>- Forge visitee <white>✔"
en-US: "<green>- Forge visited <white>✔"
'3':
objectives:
- id: "battre_mannequins"
inprogress:
fr-FR: "Battre des mannequins (%betonquest_premiere_quete:objective.battre_mannequins.amount%/3)"
en-US: "Beat training dummies (%betonquest_premiere_quete:objective.battre_mannequins.amount%/3)"
completed:
fr-FR: "Battre <green>3/3 Mannequins <white>✔"
en-US: "Beat <green>3/3 Dummies <white>✔"
L'ancien format (texte simple sans cles de langue) reste fonctionnel. Voir la documentation de quests_config.yml pour tous les details sur le format multilingue.
Workflow de creation d'une quete
- Creer le package BetonQuest avec le template
trackedQuest - Definir la categorie avec
questCategory(doit matcher ledisplayName) - Ajouter les events (
activeQuest,nextStep,kgcomplete,finishQuest) - Configurer les textes et etapes dans
quests_config.yml - Recharger :
/bq reloadpuis/questsreload - Tester en jeu
Interaction avec /bq reload
Quand vous executez /bq reload, QuestsTracker detecte automatiquement le reload et :
- Re-indexe les quetes par categorie
- Invalide le cache
- Met a jour le scoreboard
Vous n'avez pas besoin de faire /questsreload apres un /bq reload pour les changements de packages BetonQuest.
Voir aussi
- Configuration — Categories, sous-categories et quests_config.yml
- Commandes — Commandes de rechargement
- Depannage — Problemes lies a BetonQuest