GroupeZ Docs
Configurations

Config.yml

Reference du fichier de configuration principal

Le fichier config.yml est le fichier de configuration principal de zMenu. Il controle les parametres globaux du plugin, la configuration de la base de donnees, les options de performance et plus encore.

Emplacement du fichier

plugins/zMenu/config.yml

Reference complete de la configuration

#######################################
#       Parametres de debug           #
#######################################

# Activer les messages de debug dans la console
enable-debug: false

# Activer les informations de timing de debug
enable-debug-time: false

#######################################
#      Parametres de stockage         #
#######################################

# Type de stockage pour les donnees joueur
# Options : SQLITE, MYSQL, MARIADB, NONE
storage-type: SQLITE

# Configuration de la base de donnees (pour MySQL/MariaDB)
database-configuration:
  table-prefix: "zmenu_"
  host: "localhost"
  port: 3306
  user: "username"
  password: "password"
  database: "zmenu"

#######################################
#     Parametres de formatage         #
#######################################

# Activer le format MiniMessage (Paper/Purpur uniquement)
# Cela permet le formatage moderne comme <gradient:red:blue>
enable-mini-message-format: true

#######################################
#    Parametres de performance        #
#######################################

# Mettre en cache les item stacks pour de meilleures performances
enable-cache-item-stack: true

# Activer le cache PlaceholderAPI
enable-cache-placeholder-api: false

# Duree du cache PlaceholderAPI (ticks, 20 = 1 seconde)
cache-placeholder-api: 20

# Mettre en cache les donnees des joueurs hors ligne (secondes)
cache-offline-player: 300

#######################################
#        Parametres de clic           #
#######################################

# Activer le cooldown de clic pour prevenir le spam de clics
enable-cooldown-click: true

# Duree du cooldown (millisecondes)
cooldown-click-milliseconds: 100

#######################################
#      Parametres de securite         #
#######################################

# Activer la protection anti-duplication
enable-anti-dupe: true

# Logger quand les joueurs ouvrent des inventaires
enable-player-open-inventory-logs: true

#######################################
#        Parametres de menu           #
#######################################

# Nom de l'inventaire du menu principal par defaut
main-menu: "example"

# Utiliser la touche d'echange de main secondaire (F) pour ouvrir le menu principal
use-swap-item-off-hand-key-to-open-main-menu: false

# Recharger automatiquement un inventaire quand son fichier est modifie, ajoute ou supprime
hot-reload:
  enable: false
  delay-milliseconds: 500

# Nombre de dialogues dialog_list pouvant etre imbriques les uns dans les autres
dialog-list-max-depth: 4

Options de configuration expliquees

Parametres de debug

enable-debug

Active les messages de debug detailles dans la console. Utile pour resoudre les problemes.

enable-debug: false

Quand activer :

  • Resolution de problemes de chargement d'inventaire
  • Debug de problemes de placeholder
  • Signalement de bugs au developpeur

enable-debug-time

Affiche les informations de timing pour les operations.

enable-debug-time: false

Parametres de stockage

storage-type

Determine comment les donnees joueur sont stockees.

TypeDescription
SQLITEBase de donnees locale basee sur fichier (par defaut)
MYSQLServeur MySQL
MARIADBServeur MariaDB
NONEPas de stockage persistant
storage-type: SQLITE

Recommandations :

  • Serveur unique : Utilisez SQLITE
  • Reseau/BungeeCord : Utilisez MYSQL ou MARIADB
  • Pas de donnees joueur necessaires : Utilisez NONE

database-configuration

Parametres de connexion MySQL/MariaDB.

database-configuration:
  table-prefix: "zmenu_"
  host: "localhost"
  port: 3306
  user: "minecraft"
  password: "mot_de_passe_securise"
  database: "minecraft_db"
OptionDescription
table-prefixPrefixe pour les tables de la base de donnees
hostAdresse du serveur de base de donnees
portPort de la base de donnees (defaut : 3306)
userNom d'utilisateur de la base de donnees
passwordMot de passe de la base de donnees
databaseNom de la base de donnees

Parametres de formatage

enable-mini-message-format

Active le formatage MiniMessage pour le texte. Fonctionne uniquement sur Paper/Purpur/Pufferfish.

enable-mini-message-format: true

Quand active, vous pouvez utiliser :

name: "<gradient:red:blue>Texte en degrade</gradient>"
lore:
  - "<rainbow>Arc-en-ciel !</rainbow>"
  - "<bold><gold>Or en gras</gold></bold>"

Parametres de performance

enable-cache-item-stack

Met en cache les ItemStacks crees pour ameliorer les performances.

enable-cache-item-stack: true

Recommandation : Gardez active sauf si vous rencontrez des problemes.


enable-cache-placeholder-api

Met en cache les resultats de PlaceholderAPI pour reduire la charge d'analyse.

enable-cache-placeholder-api: false

Activer ceci signifie que les placeholders ne se mettront pas a jour instantanement. Utilisez avec precaution.


cache-placeholder-api

Duree de mise en cache des resultats de placeholder (en ticks).

cache-placeholder-api: 20  # 1 seconde

cache-offline-player

Combien de temps mettre en cache les donnees des joueurs hors ligne (secondes).

cache-offline-player: 300  # 5 minutes

Parametres de clic

enable-cooldown-click

Empeche le spam de clics en ajoutant un cooldown entre les clics.

enable-cooldown-click: true

cooldown-click-milliseconds

La duree du cooldown entre les clics.

cooldown-click-milliseconds: 100  # 0.1 secondes

Ajustez selon vos besoins :

  • Plus bas = Plus reactif, risque de double-clics accidentels
  • Plus haut = Plus sur, peut sembler lent

Parametres de securite

enable-anti-dupe

Active le systeme anti-duplication d'items.

enable-anti-dupe: true

Cela detecte et empeche les exploits courants de duplication d'items impliquant les GUIs d'inventaire.


enable-player-open-inventory-logs

Enregistre quand les joueurs ouvrent des inventaires zMenu.

enable-player-open-inventory-logs: true

Utile pour :

  • Surveiller l'activite des joueurs
  • Debugger les problemes
  • Audit de securite

Parametres de menu

L'inventaire par defaut ouvert par le type de bouton MAIN_MENU et le raccourci touche F.

main-menu: "example"

Cela doit correspondre a un nom de fichier d'inventaire (sans .yml) dans votre dossier inventories/.


use-swap-item-off-hand-key-to-open-main-menu

Permet aux joueurs d'appuyer sur F (touche d'echange de main secondaire) pour ouvrir le menu principal.

use-swap-item-off-hand-key-to-open-main-menu: false

Quand activer :

  • Vous voulez un acces facile au menu sans commandes
  • Votre serveur a un menu hub principal

Quand garder desactive :

  • Les joueurs ont besoin de la touche F pour l'echange d'items reel
  • Vous utilisez des packs de ressources personnalises avec des raccourcis touche F

hot-reload

Le hot reload a sa propre page avec tous les details : Hot Reload.

Surveille le dossier inventories/ (et tous ses sous-dossiers) et applique vos modifications sans aucune commande :

  • Fichier modifie : l'inventaire est recharge.
  • Nouveau fichier : l'inventaire est charge.
  • Fichier supprime (ou dossier supprime) : l'inventaire est decharge.
hot-reload:
  enable: false
  delay-milliseconds: 500
OptionDescription
enableActive le rechargement a chaud. Desactive par defaut.
delay-millisecondsTemps d'attente apres la derniere modification d'un fichier avant de le recharger. Les editeurs de texte enregistrent souvent un fichier en plusieurs etapes, cela evite de le recharger plusieurs fois.

Bon a savoir :

  • Les joueurs qui regardent un inventaire au moment ou il est recharge voient la nouvelle version s'ouvrir instantanement, sur la meme page et avec les memes inventaires precedents (un bouton retour ouvre aussi la nouvelle version). Si l'inventaire est decharge (fichier supprime, enable: false), il est ferme.
  • Un fichier qui ne peut pas etre charge (erreur de syntaxe YAML, type de bouton inconnu, taille invalide...) n'est pas applique : la version precedente reste chargee et l'erreur est affichee dans la console jusqu'a ce que vous corrigiez le fichier.
  • Seul le dossier inventories/ est surveille. Les fichiers de specify-path-menus, les patterns et les commandes necessitent toujours /zm reload.
  • L'activation ou la desactivation de l'option prend effet apres /zm reload ou /zm reload config (ou en deux secondes depuis le dialogue de configuration en jeu).
  • En plus des evenements du systeme de fichiers, le dossier est scanne toutes les deux secondes. Les modifications sont donc detectees meme la ou le systeme de fichiers n'envoie aucun evenement : conteneurs Docker (Pterodactyl, bind mounts), WSL, partages reseau, fichiers envoyes en SFTP.
  • Un fichier est recharge quand son contenu ou sa date de modification change. Enregistrer a nouveau un fichier sans modification le recharge quand meme, mais une meme version n'est jamais rechargee deux fois.

Logs console :

Chaque action est affichee dans la console avec le prefixe [HotReload] :

[zMenu] [HotReload] Inventory hot reload enabled, watching .../plugins/zMenu/inventories (native recursive watch, 12 file(s), 12 loaded inventory(ies), scan every 2000ms, delay 500ms).
[zMenu] [HotReload] Change detected on example.yml, reloading the inventory...
[zMenu] [HotReload] Inventory example.yml reloaded in 14ms, reopened for 1 player(s).

Vous verrez aussi les erreurs YAML, les fichiers qui n'ont pas pu etre charges, les inventaires decharges apres une suppression, et les fichiers desactives (enable: false) ou en attente d'un prerequis de chargement. Avec enable-debug a true, chaque evenement de fichier, chaque changement trouve par le scan et chaque fichier ignore (inchange) est aussi affiche.

Depannage : si rien ne se passe quand vous enregistrez un fichier, verifiez d'abord que la ligne Inventory hot reload enabled apparait au demarrage ou apres /zm reload. Activez ensuite enable-debug pour voir si les modifications sont detectees.

Quand activer :

  • Pendant la creation ou la modification de menus, pour voir vos changements instantanement
  • Sur un serveur de test/developpement

dialog-list-max-depth

Nombre de dialogues dialog_list pouvant etre imbriques les uns dans les autres (une liste dans une liste dans une liste...). Par defaut : 4.

dialog-list-max-depth: 4

Cela ne limite pas le nombre de dialogues qu'une liste contient. Une liste envoie tous les dialogues qu'elle contient, y compris le contenu des listes imbriquees, dans le paquet qui l'ouvre : une imbrication profonde rend ce paquet plus gros et peut deconnecter le joueur. Les listes imbriquees au-dela de cette valeur sont ignorees.


Exemples de configurations

Serveur basique (SQLite)

enable-debug: false
storage-type: SQLITE
enable-mini-message-format: true
enable-cache-item-stack: true
enable-anti-dupe: true
enable-cooldown-click: true
cooldown-click-milliseconds: 100
main-menu: "main"

Serveur reseau (MySQL)

enable-debug: false
storage-type: MYSQL
database-configuration:
  table-prefix: "zmenu_"
  host: "mysql.monreseau.com"
  port: 3306
  user: "zmenu_user"
  password: "mot_de_passe_securise_ici"
  database: "minecraft_network"
enable-mini-message-format: true
enable-cache-item-stack: true
enable-cache-placeholder-api: true
cache-placeholder-api: 40
enable-anti-dupe: true
main-menu: "hub_menu"

Axe sur les performances

enable-debug: false
storage-type: SQLITE
enable-cache-item-stack: true
enable-cache-placeholder-api: true
cache-placeholder-api: 60
cache-offline-player: 600
enable-cooldown-click: true
cooldown-click-milliseconds: 150

Developpement/Test

enable-debug: true
enable-debug-time: true
hot-reload:
  enable: true
storage-type: SQLITE
enable-cache-item-stack: false
enable-cache-placeholder-api: false
enable-cooldown-click: false
enable-player-open-inventory-logs: true

Recharger la configuration

Apres avoir effectue des modifications :

/zm reload config

Ou rechargez tout :

/zm reload

Les changements de configuration de base de donnees necessitent un redemarrage du serveur pour prendre effet.

Bonnes pratiques

  1. Commencez avec les valeurs par defaut : Changez uniquement ce dont vous avez besoin
  2. Activez le cache sur les gros serveurs : Ameliore les performances
  3. Utilisez MySQL pour les reseaux : Permet le partage de donnees entre serveurs
  4. Gardez l'anti-dupe active : Protege votre economie
  5. Testez le mode debug : Utile lors de la configuration, desactivez en production
  6. Definissez un cooldown de clic approprie : Equilibrez reactivite et securite

Depannage

Echec de connexion a la base de donnees

  1. Verifiez que les identifiants sont corrects
  2. Verifiez que le serveur de base de donnees fonctionne
  3. Assurez-vous que la base de donnees existe
  4. Verifiez que le pare-feu autorise les connexions
  5. Verifiez que l'utilisateur a les permissions appropriees

Les placeholders ne se mettent pas a jour

  1. Desactivez temporairement le cache des placeholders
  2. Verifiez que PlaceholderAPI est installe
  3. Verifiez que l'expansion est telechargee

Problemes de performance

  1. Activez le cache d'item stack
  2. Activez le cache de placeholder
  3. Augmentez le cooldown de clic
  4. Verifiez les boucles d'inventaire (A ouvre B ouvre A)

Prochaines etapes

Sur cette page

GroupeZ MCP

La documentation dans ton IA

Le MCP permet à ton IA de chercher dans la documentation GroupeZ et de lire les exemples à jour pour t’aider à configurer tes plugins.

Lecture seule · Sans clé API côté documentation

1. Copie l’adresse du serveur

Transport : HTTP (Streamable HTTP). Authentification : aucune. Ton outil utilise son propre modèle et ses propres limites d’abonnement.

  1. Ouvre Plugins dans ChatGPT sur le web, puis + → Ajouter un serveur MCP personnalisé.
  2. Nomme-le « GroupeZ Documentation », colle l’URL ci-dessus et choisis « Aucune authentification ». Crée puis installe le plugin.
  3. Dans une conversation, tape @ et sélectionne ce plugin avant d’envoyer ta question. Si nécessaire, active search, get_page et list_pages dans ses paramètres.
Guide officiel de cet outil

3. Pose une question

Utilise le MCP GroupeZ pour m’aider à créer un inventaire zMenu. Recherche les pages pertinentes, lis les exemples et cite tes sources.
Autres clients et dépannage

Pour les clients utilisant mcpServers, adapte cet exemple à leur format :

{
  "mcpServers": {
    "groupez-docs": {
      "url": ""
    }
  }
}

Les outils disponibles sont search, get_page et list_pages. Après une mise à jour, actualise les outils du connecteur. Si ton IA n’y accède pas, vérifie que le connecteur est activé dans la conversation et que ton compte autorise les MCP personnalisés. Ouvrir l’URL dans un navigateur n’est pas un test MCP.