← Tous les articles

Bossbars pour les événements Minecraft : quand une barre vaut mieux que le chat, et comment faire un compte à rebours

Le chat défile, un titre s’efface après quelques secondes et une ligne d’action bar disparaît avant que la moitié des joueurs l’ait lue. Une bossbar reste en haut de l’écran tant que dure l’événement, et tout le monde voit le même remplissage. C’est donc l’endroit idéal pour un état partagé : le temps restant, l’avancée d’un rituel, la phase d’un raid.

Vérifié pour les versions : Java Edition 1.15–26.3 (/schedule … replace et /schedule clear demandent la 1.15 ; le reste fonctionne dès la 1.13). Les noms de dossiers de data pack ci-dessous valent pour la 1.21 et au-delà.

Choisir le canal selon la durée de l’information

CanalDurée d’affichageIdéal pourÀ éviter pour
Chat (tellraw)Jusqu’à ce qu’il défile ; reste dans l’historiqueRègles, consignes, formulations exactesCe qu’il faut surveiller en se déplaçant
Titre et sous-titreEnviron 5 secondes avec le minutage par défaut (0,5 s d’apparition, 3,5 s à l’écran, 1 s de disparition)Le début ou la fin d’un événement, un moment fortUne information utile plus tard
Action barQuelques secondes au-dessus de la barre d’inventaireUn retour personnel : « Quête mise à jour », « Pas assez de jetons »Un état commun à tout le serveur
BossbarJusqu’à ce qu’on la cache ou la supprimeMinuteurs, progression, phases, vie d’un bossMessages et dialogues

Un événement bien mené en combine souvent plusieurs : un titre au lancement, une ligne de chat qui dit ce que mesure la barre, la barre elle-même pendant toute la durée, puis un titre ou un message à la fin. Pour la partie texte, voir des annonces serveur lisibles.

Quatre usages qui marchent sur un serveur RP

Compte à rebours

« Fenêtre d’évacuation », « Le rituel s’achève dans… ». La barre part pleine et se vide. Style progress, couleur jaune ou rouge. La recette complète est plus bas.

Jauge

La barre se remplit au fil des actions des joueurs : offrandes apportées, générateurs réparés, votes exprimés. max est l’objectif, et la valeur vient d’un scoreboard que l’événement tient déjà :

execute store result bossbar cube:ritual_charge value run scoreboard players get #offerings ritual

Phases

Un raid en quatre étapes : max 4, et value vaut l’étape en cours. Prenez un style à crans divisible par le nombre d’étapes (notched_12 pour 4 ou 6 étapes, notched_10 pour 5), pour que les limites de phase tombent sur un cran.

Vie du boss

Pour un boss invoqué avec un tag, copiez sa vie dans la barre à chaque tick ou chaque seconde. Réglez max sur sa vie maximale (300 ici) ; la valeur stockée est la vie arrondie à l’inférieur :

bossbar set cube:event_boss max 300
execute store result bossbar cube:event_boss value run data get entity @e[tag=event_boss,limit=1] Health

Le sélecteur doit trouver exactement une entité. Si le boss est mort ou déchargé, la deuxième ligne échoue et la barre garde sa dernière valeur : supprimez-la à la fin du combat. Des groupes différents peuvent voir des barres différentes, chacune avec son sélecteur, par exemple players @a[team=defenders].

Règles pour une interface d’événement lisible

Un compte à rebours qui fonctionne

Une bossbar ne compte pas toute seule. On garde le temps restant dans un scoreboard, on le diminue à intervalle régulier et on le copie dans la barre. Le seul piège est l’unité : un bloc de commande « répétition » s’exécute à chaque tick, 20 fois par seconde, donc une boucle qui retire 1 par passage compte des ticks, pas des secondes. Un minuteur de « 60 secondes » réglé sur 60 serait fini en trois secondes.

Avec des blocs de commande (en ticks)

Configuration, une seule fois depuis le chat ou un bloc impulsion. 60 secondes font 1200 ticks :

/scoreboard objectives add event_timer dummy
/scoreboard players set #timer event_timer 1200
/bossbar add cube:evacuation {"text":"Evacuation","color":"yellow"}
/bossbar set cube:evacuation color yellow
/bossbar set cube:evacuation max 1200
/bossbar set cube:evacuation value 1200
/bossbar set cube:evacuation players @a

La boucle : un bloc répétition suivi de quatre blocs chaîne, tous en « Toujours actif », dans cet ordre (les blocs de commande acceptent les commandes avec ou sans barre oblique) :

execute if score #timer event_timer matches 1.. run scoreboard players remove #timer event_timer 1
execute if score #timer event_timer matches 0.. store result bossbar cube:evacuation value run scoreboard players get #timer event_timer
execute if score #timer event_timer matches 0 run say La fenêtre d’évacuation est fermée.
execute if score #timer event_timer matches 0 run bossbar remove cube:evacuation
execute if score #timer event_timer matches 0 run scoreboard players set #timer event_timer -1

Le premier bloc ne retire du temps que s’il en reste. Le deuxième copie le temps dans la barre. À zéro, les trois derniers lancent la commande de l’événement, suppriment la barre et placent le minuteur à -1 pour que rien ne se répète aux ticks suivants. Relancer la configuration redémarre le compte à rebours.

Avec un data pack (en secondes)

Dans un data pack, on peut éviter tout travail à chaque tick : une fonction se replanifie elle-même une fois par seconde. Trois fichiers dans l’espace de noms cube (avant la 1.21, le dossier s’appelle functions et non function) :

data/cube/function/evacuation/start.mcfunction

scoreboard objectives add event_timer dummy
scoreboard players set #timer event_timer 60
bossbar add cube:evacuation {"text":"Evacuation","color":"yellow"}
bossbar set cube:evacuation color yellow
bossbar set cube:evacuation max 60
bossbar set cube:evacuation value 60
bossbar set cube:evacuation players @a
schedule function cube:evacuation/second 1s replace

data/cube/function/evacuation/second.mcfunction

scoreboard players remove #timer event_timer 1
execute store result bossbar cube:evacuation value run scoreboard players get #timer event_timer
bossbar set cube:evacuation players @a
execute if score #timer event_timer matches 1.. run schedule function cube:evacuation/second 1s replace
execute if score #timer event_timer matches ..0 run function cube:evacuation/finish

data/cube/function/evacuation/finish.mcfunction

bossbar remove cube:evacuation
say La fenêtre d’évacuation est fermée.

Lancement : /function cube:evacuation/start. La ligne players de second ajoute ceux qui se sont connectés pendant le décompte. Rien ne tourne entre deux secondes, et /schedule clear cube:evacuation/second arrête le compte à rebours plus tôt (supprimez ensuite la barre).

Erreurs fréquentes

Questions fréquentes

Chaque joueur peut-il avoir son propre minuteur ?

Pas avec une seule barre : sa valeur est la même pour tous ceux qui la voient. Pour des minuteurs personnels, utilisez l’action bar ou un score par joueur.

Ticks ou secondes ?

Des secondes avec /schedule si un pas d’une seconde suffit. Des ticks avec un bloc répétition ou une fonction tick si la barre doit se vider parfaitement en douceur.

Le titre peut-il afficher les secondes restantes ?

Pas tout seul. Le nom est figé au moment de bossbar set … name ; il faudrait le redéfinir chaque seconde. La plupart des événements se contentent d’un titre court et de la barre.

Est-ce que ça marche sur Bedrock ?

Non. /bossbar et /schedule sont des commandes de Java Edition.