🧩 CustomiZer — Documentation Complète du Plugin
Un seul plugin Minecraft qui gère les packs de ressources, les objets personnalisés, les épées, armures, blocs, pioches, houes de récolte, menus GUI et un système de progression complet — entièrement depuis des fichiers de configuration.
📦 Pack de ressources
Génère et sert automatiquement votre pack de ressources via HTTP. Supporte le dossier packs, les données de modèle personnalisées, le format items/ 1.21.4+.
🎁 Objets personnalisés
Plus de 17 types d'actions : soins, vol, commandes, économie, boosters de métiers, effets, mode dieu, et bien plus.
⚔️ Épées de rareté
Système de rareté à 5 niveaux avec textures uniques par niveau, vol de vie, dégâts élémentaires et effets de statut.
🛡️ Armures personnalisées
Armures en cuir avec couleurs personnalisées, bonus de set d'armure complet et support intégré du pack de ressources.
🧱 Blocs personnalisés
Blocs personnalisés basés sur les blocs de notes avec restrictions de casse, drops, sons et particules.
⛏️ Pioches personnalisées
Pioches à montée en niveau avec minage en rayon, minage en veine, drops bonus et effets de maintien.
🌾 Houes de récolte
Houes de récolte multi-cultures avec récompenses économiques, XP de métiers et replantation automatique par niveau.
🏆 Progression
Pistes de maîtrise, missions quotidiennes/hebdomadaires, système de prestige, station de reforgement et emplacements de gemmes.
📋 Prérequis
| Dépendance | Type | Utilité |
|---|---|---|
| Paper / Purpur 1.21+ | Requis | Plateforme serveur |
| Vault | Soft | Économie (récompenses monétaires, coûts de reforgement) |
| PlaceholderAPI | Soft | Placeholders personnalisés dans les messages et la description |
| Jobs Reborn | Soft | XP gagné en cassant des blocs personnalisés et vanilla |
| WorldGuard | Soft | Multiplicateurs de XP/argent basés sur les régions |
| ModelEngine | Soft | Fusionne automatiquement les packs de ressources ModelEngine |
| ItemsAdder | Soft | Détection des récompenses de blocs ItemsAdder (optionnel) |
settings.yml. Le plugin fonctionne parfaitement sans aucune d'entre elles.⌨️ Commandes & Permissions
| Commande | Permission | Description |
|---|---|---|
/z | cxp.use | Commande principale — reload, get, give, list, gui, reforge |
/z reload | cxp.reload | Recharge tous les fichiers de configuration et reconstruit le pack de ressources |
/z get <type> <name> | cxp.use | Obtenir un objet, une épée, une armure, un bloc, une houe ou une pioche personnalisés |
/z give <player> <type> <name> | cxp.give | Donner un objet personnalisé à un autre joueur |
/z gui | cxp.gui | Ouvre le GUI principal des catégories |
/zrepair | cxp.repair | Répare tous les objets personnalisés dans votre inventaire |
/zmastery [player] | cxp.mastery | Affiche la progression de la piste de maîtrise |
/zmissions | cxp.missions | Ouvre le tableau de missions |
/zprestige | cxp.prestige | Effectuer un prestige lorsque toutes les pistes de maîtrise atteignent le niveau 100 |
/zreforge | cxp.reforge | Ouvre le GUI de la station de reforgement |
/zsocket add [count] | cxp.socket.add | Ajoute 1 à 4 emplacements de socket à l'objet en main |
/zsocket extract | cxp.socket | Retire et détruit la première gemme enchâssée, libérant l'emplacement |
/zsocket info | cxp.socket | Affiche le nombre de sockets et les gemmes enchâssées sur l'objet en main |
/z info <type> <name> | cxp.admin | Affiche les données de modèle, CMD et métadonnées pour tout objet, épée, armure, bloc, houe ou pioche |
/zpack zip | cxp.admin | Reconstruit le pack de ressources en mémoire et le pousse à tous les joueurs en ligne |
/zpack reloadpacks | cxp.admin | Rescanne le dossier packs/, réattribue les données de modèle, puis reconstruit le pack |
/zpack fonts | cxp.admin | Liste toutes les images de police enregistrées avec leur pack:id et point de code Unicode |
/zpack font <pack> <id> | cxp.admin | Prévisualise une image de police dans votre barre d'action |
/zpack gui <packName> [namespace] | cxp.admin | Génère un pack de fond GUI à partir des PNG dans gui_input/<packName>/ |
/zpack rank <packName> [namespace] | cxp.admin | Génère un pack de badges / icônes de rang à partir des PNG dans rank_input/<packName>/ |
/zpack item <packName> [namespace] [material] | cxp.admin | Génère un pack d'objets 2-D plats à partir des PNG dans item_input/<packName>/ |
/zpack block <packName> [namespace] [material] [sound] | cxp.admin | Génère un pack de blocs personnalisés à partir des PNG dans block_input/<packName>/ |
/zpack armor <packName> [namespace] | cxp.admin | Génère un pack de set d'armures à partir des PNG de calque et d'icône dans armor_input/<packName>/ |
📦 Système de Pack de Ressources
CustomiZer gère automatiquement toute la chaîne du pack de ressources — aucun hébergement externe nécessaire.
🌐 Serveur HTTP intégré
Au démarrage, le plugin lance un serveur HTTP léger sur un port configurable (par défaut 7270). Le pack de ressources est servi à http://<your-ip>:<port>/<hash>.zip. Les joueurs le reçoivent automatiquement à la connexion via l'API setResourcePack.
🔄 Rechargement à chaud sans redémarrage
Exécuter /zpack zip ou /z reload reconstruit le pack en mémoire et met à jour le gestionnaire HTTP en direct — le serveur n'a jamais besoin de redémarrer. Le nouveau hash du pack déclenche un téléchargement à jour lors de la prochaine connexion d'un joueur.
📐 Sortie en double format
Le pack est écrit simultanément dans les deux formats :
- Ancien format —
assets/minecraft/models/item/<material>.jsonavecoverrides[]— fonctionne sur toutes les versions incluant 1.21.8. - Nouveau format —
assets/minecraft/items/<material>.jsonavecrange_dispatch— requis pour le rendu prioritaire 1.21.4+.
🗂️ Dossier Includes
Placez n'importe quel pack de ressources supplémentaire dans plugins/CustomiZer/includes/ et il sera fusionné dans le pack généré automatiquement à chaque construction. Parfait pour ajouter des sons, textures ou polices personnalisées depuis d'autres outils.
resourcepack.modelengine: true est défini dans config.yml.material.isBlock() et utilise automatiquement le parent block/<name> pour éviter les textures manquantes.🗂️ Gestionnaire de packs (dossier packs/)
Déposez n'importe quel dossier de pack dans plugins/CustomiZer/packs/ et CustomiZer l'intègre automatiquement. Les packs embarquent leurs propres configurations et textures — aucune modification des fichiers principaux du plugin n'est requise.
📁 Structure d'un pack
Chaque dossier de pack contient un répertoire configs/ pour les définitions YAML et un répertoire resourcepack/ avec les textures, modèles et polices.
🔤 Espace de noms
Chaque pack déclare son propre espace de noms dans le champ info.namespace de chaque fichier de configuration. Tous les objets, blocs et ressources sont limités à cet espace de noms pour éviter les conflits entre packs.
🎨 Images de police
Les packs peuvent déclarer des images de police pour les textures de superposition GUI. L'échelle, la position et le décalage horizontal sont tous configurables — et peuvent être remplacés globalement dans customfonts.yml.
🔗 Intégration des catégories
Les objets du pack apparaissent dans le GUI en jeu sous leur onglet de catégorie aux côtés des objets configurés. Les catégories sont définies dans un configs/category.yml à l'intérieur du pack.
📂 Structure complète d'un dossier de pack
Voici la structure exacte attendue par le plugin. Déposez votre dossier de pack dans plugins/CustomiZer/packs/ et exécutez /zpack reloadpacks puis /zpack zip.
packs/
└── my_pack/
├── configs/
│ ├── my_items.yml ← définitions d'objets / blocs / font_images
│ ├── category.yml ← optionnel : catégorie GUI pour ce pack
│ └── subfolder/ ← les configs peuvent être imbriquées dans des sous-dossiers
│ └── more_items.yml
│
└── resourcepack/
├── pack.mcmeta ← métadonnées Minecraft du pack (requis)
└── assets/
└── <namespace>/ ← doit correspondre à info.namespace dans vos YAML
├── models/
│ ├── item/ ← fichiers de modèle .json pour les objets
│ └── block/ ← fichiers de modèle .json pour les blocs
└── textures/
├── item/ ← textures .png pour les objets
├── block/ ← textures .png pour les blocs
└── custom/ ← textures pour les images de police (tout sous-chemin)
info.namespace: gem_ranks, les textures doivent être sous assets/gem_ranks/textures/. Une discordance entraîne un chargement silencieux des textures.📄 pack.mcmeta (requis)
Placez ce fichier à resourcepack/pack.mcmeta. Utilisez pack_format: 34 pour Minecraft 1.21+.
{
"pack": {
"pack_format": 34,
"description": "My Pack"
}
}
🔑 Registre — Identifiants attribués automatiquement
Le plugin attribue automatiquement des entiers Custom Model Data (à partir de 30100) à chaque objet et bloc, et des points de code Unicode PUA (à partir de U+EC00) à chaque image de police. Ces attributions sont persistées dans packs/.registry.yml — elles ne changent jamais entre les redémarrages, donc les objets existants dans les inventaires des joueurs restent valides.
/zpack reloadpacks (rescanne et réattribue les IDs) puis /zpack zip (reconstruit et pousse le pack aux joueurs). /z reload effectue les deux en une seule commande.🖼️ Images de police — Superpositions GUI
CustomiZer supporte les images de superposition GUI personnalisées grâce au système de polices bitmap de Minecraft. Cela permet de rendre des images de texture complètes dans les titres d'inventaire — parfait pour les fonds GUI personnalisés, les badges de rang, les icônes et les superpositions HUD.
📂 Étape 1 — Où placer la texture
Les textures de police sont des fichiers .png placés à l'intérieur du resourcepack du pack à :
resourcepack/assets/<namespace>/textures/<your-path>.png
La valeur <your-path> est ce que vous écrivez dans le champ path: de la configuration (l'extension .png est ajoutée automatiquement). Exemples :
| Valeur path: | Emplacement réel du fichier |
|---|---|
bronze_amethyst_i | resourcepack/assets/gem_ranks/textures/bronze_amethyst_i.png |
custom/30main_gui/gui1 | resourcepack/assets/iavegas/textures/custom/30main_gui/gui1.png |
ranks/gold_rank | resourcepack/assets/my_pack/textures/ranks/gold_rank.png |
/zpack fonts. Vérifiez que le dossier d'espace de noms correspond à info.namespace dans votre YAML.📄 Étape 2 — La déclarer dans configs/
Créez un fichier YAML n'importe où dans configs/ (ex. configs/my_fonts.yml). Vous pouvez mélanger des images de police avec des objets dans le même fichier, ou les garder séparés.
info:
namespace: gem_ranks # doit correspondre au dossier assets/<namespace>/
font_images:
ba_i: # ID unique pour cette image de police
path: "bronze_amethyst_i" # chemin sous textures/ (sans .png)
scale_ratio: 12 # hauteur rendue en pixels
y_position: 9.5 # ascent — distance depuis la ligne de base du texte
permission: bronze_amethyst_i # optionnel : permission pour afficher dans le GUI
show_in_gui: true # optionnel : afficher dans le GUI de navigation de polices
Référence complète des champs :
| Champ | Requis | Description |
|---|---|---|
path | Oui | Chemin vers le PNG relatif à assets/<namespace>/textures/, sans l'extension .png |
scale_ratio | Oui | Hauteur rendue en pixels de jeu. Définissez-la à la hauteur naturelle en pixels de la texture pour un rendu 1:1. Pour une texture GUI large de 176px, 176 remplit exactement la largeur de l'inventaire. |
y_position | Oui | Ascent (décalage vertical). 14 aligne l'image en haut d'un cadre d'inventaire standard. Des valeurs plus petites déplacent l'image vers le bas. |
permission | Non | Nœud de permission requis pour voir cette image dans les GUIs en jeu |
show_in_gui | Non | true pour afficher cette image de police dans le navigateur GUI. Par défaut : false |
🔤 Étape 3 — Appliquer le pack
Après avoir sauvegardé les fichiers, exécutez ces deux commandes en tant qu'administrateur :
/zpack reloadpacks— scanne le pack et attribue un point de code Unicode à chaque image de police/zpack zip— reconstruit le pack de ressources et l'envoie aux joueurs en ligne
Vous pouvez vérifier l'enregistrement avec /zpack fonts (liste tous les IDs de polices + leurs points de code Unicode) et prévisualiser n'importe quelle image avec /zpack font <pack> <id> (l'affiche dans votre barre d'action).
✏️ Remplacements globaux — customfonts.yml
Remplacez l'échelle, la position et le décalage horizontal de n'importe quelle image de police depuis plugins/CustomiZer/customfonts.yml sans toucher au pack lui-même. Utile pour affiner des packs tiers.
fonts:
gem_ranks: # nom du dossier de pack
ba_i: # ID de l'image de police
scale_ratio: 14
y_position: 10
x_position: -4 # décalage horizontal en pixels (non disponible dans la config du pack)
🪄 Générateurs de packs — Créer des packs sans coder
CustomiZer inclut des générateurs de packs intégrés qui créent un pack de ressources complet et prêt à l'emploi à partir de simples images PNG que vous déposez dans un dossier. Aucun fichier JSON, aucune édition YAML, aucun code requis. Le plugin déduit tout depuis vos fichiers images et produit automatiquement toutes les configurations.
1. Déposez vos fichiers PNG dans le bon dossier d'entrée (voir chaque section ci-dessous).
2. Exécutez la commande du générateur en jeu en tant qu'administrateur.
3. Exécutez
/zpack reloadpacks puis /zpack zip.Terminé — le pack est actif et les joueurs le reçoivent automatiquement.
🖼️ Fonds GUI
Images de superposition d'inventaire pleine largeur. Mise à l'échelle automatique pour correspondre à la largeur d'inventaire de 176px.
🏅 Badges de rang
Petites icônes en ligne pour le chat, le tableau de scores et la description. Rendus à la hauteur naturelle en pixels.
🎁 Objets plats
Un PNG = un objet. Génère un objet 2-D plat avec une configuration YAML complète.
🧱 Blocs personnalisés
Détecte automatiquement les divisions de textures haut/côté. Génère des configs de blocs à 6 faces avec placement REAL_NOTE.
🛡️ Sets d'armures
Déposez les PNG de calque et d'icône par set. Génère armors_rendering + tous les objets des pièces d'armure.
🖼️ Générateur de fond GUI — /zpack gui
Utilisez ceci pour créer des images de fond d'inventaire personnalisées — les grandes textures pleine largeur qui glissent derrière un GUI de coffre ou de fourneau. Utilisé par des packs comme iavegas.
📁 Étape 1 — Placez votre PNG dans le bon dossier
Créez ce dossier s'il n'existe pas, puis déposez votre PNG à l'intérieur :
plugins/CustomiZer/gui_input/<packName>/ └── my_gui.png ← votre image de fond
- Remplacez
<packName>par le nom que vous souhaitez, ex.my_casino_gui. - Vous pouvez mettre plusieurs PNG dans le dossier — chacun devient sa propre image GUI.
- Le PNG doit avoir la même largeur qu'un inventaire Minecraft (176px de large à l'échelle 1×, ou tout multiple de cela).
⌨️ Étape 2 — Exécuter la commande
/zpack gui <packName> /zpack gui <packName> <namespace> ← optionnel : espace de noms personnalisé, par défaut le packName
Le plugin lit les dimensions de votre PNG, calcule automatiquement le scale_ratio pour que l'image remplisse exactement la largeur d'inventaire de 176px, et génère :
plugins/CustomiZer/packs/<packName>/— dossier de pack prêt à l'emploi (prêt pour reloadpacks)plugins/CustomiZer/gui_output/<packName>.zip— ZIP portable à partager ou archiver
✅ Étape 3 — Appliquer et utiliser
/zpack reloadpacks /zpack zip
Pour utiliser l'image comme fond de titre GUI dans gui.yml :
title: "<shift:-8><font_image:my_casino_gui:my_gui>"
Prévisualisez-la instantanément en jeu : /zpack font <packName> <id>
<shift:-8> décale l'image de 8 pixels vers la gauche pour l'aligner avec le bord gauche du cadre d'inventaire. Ajustez le nombre si votre image semble décentrée.🏅 Générateur de badges de rang — /zpack rank
Utilisez ceci pour créer de petites icônes en ligne — badges de rang, logos de clan, icônes de statut — qui apparaissent dans le chat, les tableaux de scores, la description des objets ou les titres d'inventaire. Utilisé par des packs comme gem_ranks.
📁 Étape 1 — Placez vos PNG dans le bon dossier
plugins/CustomiZer/rank_input/<packName>/ ├── gold_rank.png ├── silver_rank.png └── bronze_rank.png
- Chaque PNG = un badge de rang. Le nom du fichier (sans
.png) devient l'ID du badge. - Gardez vos images petites — 12–20px de haut fonctionne le mieux pour l'alignement dans le chat.
⌨️ Étape 2 — Exécuter la commande
/zpack rank <packName> /zpack rank <packName> <namespace> ← espace de noms optionnel
Le générateur utilise la hauteur naturelle de l'image comme scale_ratio (donc un PNG de 12px de haut est rendu à 12px), définit y_position: 9.5 pour s'aligner sur la ligne de base du chat, et ajoute un champ permission par badge.
✅ Étape 3 — Appliquer et utiliser
/zpack reloadpacks /zpack zip
Insérez un badge partout où les balises MiniMessage sont acceptées (préfixe de chat, description, titre) :
<font_image:my_ranks:gold_rank> PlayerName
Chaque badge reçoit également un nœud de permission égal à son nom de fichier (ex. gold_rank). Gérez l'affichage dans votre plugin de chat en utilisant ce nœud.
🎁 Générateur d'objets — /zpack item
Utilisez ceci pour créer des objets d'inventaire personnalisés — lingots, matériaux bruts, objets de quête, consommables, tout ce qui ressemble à un sprite 2-D plat. Utilisé pour des packs comme ultimate_armors (lingots, minerai brut).
📁 Étape 1 — Placez vos PNG dans le bon dossier
plugins/CustomiZer/item_input/<packName>/ ├── blood_ingot.png ├── raw_blood.png └── solar_ingot.png
- Le nom du fichier (sans
.png) = ID de l'objet. Les tirets bas deviennent des espaces dans le nom d'affichage (blood_ingot→Blood Ingot). - Utilisez les tailles de textures d'objets Minecraft standard : 16×16 ou 32×32.
⌨️ Étape 2 — Exécuter la commande
/zpack item <packName> /zpack item <packName> <namespace> <material> ↑ material vaut par défaut PAPER — changez en ex. DIAMOND pour un éclat de base différent
✅ Étape 3 — Appliquer et utiliser
/zpack reloadpacks /zpack zip
Donnez des objets aux joueurs ou à vous-même :
/z give <player> item blood_ingot /z get item solar_ingot
Ouvrez la configuration générée à packs/<packName>/configs/<packName>.yml pour ajouter des descriptions, des actions, des recettes de craft, etc.
🧱 Générateur de blocs — /zpack block
Utilisez ceci pour créer des blocs posables personnalisés qui apparaissent comme des cubes solides dans le monde. Utilisé pour des packs comme blossom_studios (poutres décoratives en bois, carreaux de pierre, etc.).
📁 Étape 1 — Nommez correctement vos PNG
Le générateur détecte automatiquement les divisions de textures en fonction des suffixes de nom de fichier. Vous avez deux options par bloc :
| Fichiers fournis | Résultat |
|---|---|
oak_beam.png uniquement | Même texture sur les 6 faces (cube plein) |
oak_beam_top.png + oak_beam.png | Haut & bas = _top, quatre côtés = nom nu |
oak_beam_top.png + oak_beam_side.png | Haut & bas = _top, quatre côtés = _side |
plugins/CustomiZer/block_input/<packName>/ ├── oak_beam.png ← côtés (ou toutes les faces si aucun _top n'existe) ├── oak_beam_top.png ← haut & bas ├── stone_tile.png ← 6 faces identiques (pas de _top fourni) └── spruce_beam_top.png ← haut/bas pour spruce_beam (les côtés utilisent spruce_beam.png ou spruce_beam_side.png)
⌨️ Étape 2 — Exécuter la commande
/zpack block <packName> /zpack block <packName> <namespace> <material> <sound>
| Argument | Par défaut | Options |
|---|---|---|
namespace | idem que packName | n'importe quel nom en minuscules |
material | PAPER | n'importe quel matériau Bukkit (apparence de l'objet en main) |
sound | stone | stone, wood, metal, dirt, sand |
✅ Étape 3 — Appliquer et utiliser
/zpack reloadpacks /zpack zip /z give <player> block oak_beam ← donne l'objet ; clic droit pour placer
Ouvrez packs/<packName>/configs/<packName>.yml pour ajuster la hardness, les sons et les drops. Pour définir ce qui tombe lors de l'extraction, ajoutez une entrée dans blocks.yml :
blocks:
oak_beam:
pack_id: "<packName>:oak_beam"
display_name: "Oak Beam"
drops:
- item: OAK_LOG
amount: 1
chance: 100
🛡️ Générateur de set d'armures — /zpack armor
Utilisez ceci pour créer un set d'armures portable complet — casque, plastron, jambières, bottes — avec des icônes d'inventaire personnalisées et des textures de superposition portées. Utilisé pour des packs comme elitecreatures.
📁 Étape 1 — Créez un sous-dossier par set d'armure
plugins/CustomiZer/armor_input/<packName>/
└── my_armor_set/ ← un dossier par set ; le nom du dossier = ID du set
├── layer_1.png ← REQUIS — superposition portée : corps, bras, pieds
├── layer_2.png ← REQUIS — superposition portée : jambières uniquement
├── helmet.png ← icône d'inventaire optionnelle
├── chestplate.png ← icône d'inventaire optionnelle
├── leggings.png ← icône d'inventaire optionnelle
└── boots.png ← icône d'inventaire optionnelle
layer_1.pngetlayer_2.pngsont les textures portées que les joueurs voient lorsque l'armure est équipée. Créez-les dans Blockbench ou n'importe quel éditeur de textures d'armure.- Les PNG d'icônes sont ce qui s'affiche dans l'emplacement d'inventaire. Standard 16×16 ou 32×32.
- Vous pouvez avoir plusieurs sous-dossiers de set sous un seul
<packName>— tous les sets sont fusionnés dans un seul fichier de pack.
⌨️ Étape 2 — Exécuter la commande
/zpack armor <packName> /zpack armor <packName> <namespace> ← espace de noms optionnel, par défaut le packName
Le générateur produit une configuration avec :
- Un bloc
armors_renderingliantlayer_1etlayer_2à l'ID du set - Une entrée d'objet par pièce fournie (casque/plastron/jambières/bottes) avec
specific_properties.armor.slotcorrectement défini
✅ Étape 3 — Appliquer et utiliser
/zpack reloadpacks /zpack zip /z give <player> armor my_armor_set_chestplate
Ouvrez packs/<packName>/configs/<packName>.yml pour activer optionnellement la teinte de couleur cuir :
armors_rendering:
my_armor_set:
color: '#8c196c' ← couleur hexadécimale affichée sur la couche de base en cuir
use_color: true ← définir à true pour activer la teinte
🎁 Objets personnalisés
Les objets peuvent être définis de deux manières : via le fichier principal plugins/CustomiZer/items.yml (actions de gameplay), ou via une config de pack dans packs/<pack>/configs/ (textures/modèles du pack de ressources pour n'importe quel type d'objet).
📦 Config d'objet de pack (configs/*.yml)
Voici le format pour définir des objets dans un dossier de pack. Le plugin lit tous les fichiers .yml récursivement depuis configs/. Chaque fichier qui a une section items: est traité.
info:
namespace: my_pack # doit correspondre au dossier assets/<namespace>/
items:
my_item: # ID d'objet unique dans cet espace de noms
display_name: "My Item" # affiché en jeu (codes de couleur supportés)
resource:
material: PAPER # matériau Minecraft de base
generate: false # false = utiliser un JSON de modèle existant
model_path: item/my_item # chemin relatif à assets/<namespace>/models/
# (extension .json non nécessaire)
Pour auto-générer un modèle d'objet plat simple à partir d'une texture (aucun JSON de modèle nécessaire) :
items:
bronze_coin:
display_name: "Bronze Coin"
resource:
material: PAPER
generate: true # le plugin génère le modèle automatiquement
model_path: item/bronze_coin # résout vers textures/item/bronze_coin.png
Référence complète des champs resource: :
| Champ | Requis | Description |
|---|---|---|
material | Oui | Matériau Minecraft de base — ex. PAPER, DIAMOND_SWORD, LEATHER_HORSE_ARMOR |
generate | Non | true = auto-générer un modèle plat item/generated depuis la texture à model_path. false = utiliser le JSON de modèle à models/<model_path>.json |
model_path | Oui | Quand generate: true — chemin vers la texture PNG sous textures/. Quand generate: false — chemin vers le JSON de modèle sous models/. Les deux relatifs à assets/<namespace>/, extension non nécessaire. |
model_id | Non | Force un entier Custom Model Data spécifique. Omettez pour laisser le plugin en attribuer un automatiquement (recommandé). |
📂 Où placer la texture / le modèle
Avec namespace: my_pack et model_path: item/my_item :
| generate: | Fichier à fournir | Chemin complet |
|---|---|---|
true | Texture PNG | resourcepack/assets/my_pack/textures/item/my_item.png |
false | JSON de modèle + textures référencées | resourcepack/assets/my_pack/models/item/my_item.json |
📄 Fichier items.yml principal (objets d'action)
Les objets d'action au clic droit sont configurés dans plugins/CustomiZer/items.yml. Champs :
NAME— Nom d'affichage (codes de couleur supportés)MATERIAL— Matériau Minecraft vanilla (ex.PAPER,DIAMOND)LORE— Liste de lignes de descriptionCMD— Entier de données de modèle personnalisées (lié à la texture du pack de ressources)COOLDOWN— Secondes avant que l'objet puisse être réutiliséDURATION— Durée de l'effet en secondes (pour les actions à effets)AMOUNT/MAX_AMOUNT— Pour les actions d'argent/argent aléatoireCOMMAND— Commande console à exécuter (placeholder%player%)ACTION— Ce que l'objet fait (voir tableau ci-dessous)
⚡ Actions des objets
| Action | Ce qu'elle fait | Champs supplémentaires |
|---|---|---|
| COMMAND | Exécute une commande console lors de l'utilisation | COMMAND |
| HEAL | Restaure le joueur à la pleine santé | — |
| JUMP | Applique l'effet Saut amélioré | DURATION |
| SPEED | Applique l'effet Vitesse | DURATION |
| REGEN | Applique l'effet Régénération | DURATION |
| STRENGTH | Applique l'effet Force | DURATION |
| LUCK | Applique l'effet Chance | DURATION |
| POISON | Empoisonne le joueur (objet maudit) | DURATION |
| GOD | Active/désactive Résistance + Saturation + Régénération | — |
| FLY | Active/désactive le vol pour le joueur | — |
| MONEY | Dépose un montant fixe sur le solde du joueur | AMOUNT |
| RANDOMMONEY | Dépose un montant aléatoire dans une plage | AMOUNT, MAX_AMOUNT |
| JOBSBOOSTER | Applique un multiplicateur de XP de métiers pour une durée | JOB_BOOST_MULTIPLIER, JOB_BOOST_DURATION |
| UNCLAIM | Scanne les chunks dans un rayon et les libère | AREA |
| DIE | Tue instantanément le joueur | — |
| NONE | Objet sans action (décoration, objet clé, trophée) | — |
⚔️ Épées personnalisées (swords.yml)
Les épées personnalisées supportent un système de rareté à 5 niveaux. Chaque niveau peut avoir une valeur de données de modèle personnalisées complètement différente, signifiant une texture différente. Les joueurs améliorent la rareté de leur épée pour débloquer de meilleures statistiques et visuels.
🎨 5 Niveaux de rareté
Commun → Rare → Épique → Légendaire → Mythique. Chaque niveau a son propre CMD (texture), nom et description.
💉 Vol de vie
Configurez un pourcentage des dégâts infligés restitué sous forme de santé (ex. lifesteal: 0.10 = 10%).
🔥 Dégâts élémentaires
Attribuez un type élémentaire (Feu, Glace, Foudre…) qui déclenche des effets spéciaux lors d'un coup.
✨ Effets au coup
Appliquez des effets de potion aux ennemis ou à vous-même lors d'un coup, chacun avec une chance et une durée configurables.
📄 Structure de la configuration d'épée
type— Matériau Minecraft (ex.IRON_SWORD)lifesteal— Fraction 0.0–1.0 des dégâts restituée en PVelemental_damage— Chaîne de nom d'élémenteffects-enemy— Carte d'effet → chance + durée appliqués à la cible touchéeeffects-self— Carte d'effet → chance + durée appliqués à l'attaquantrarity.common / rare / epic / legendary / mythical—custom_model_data,nameetlorepar niveau
🛡️ Armures personnalisées (armors.yml)
Les armures personnalisées utilisent une armure en cuir avec des couleurs de teinture RVB spécifiques pour correspondre aux textures de votre pack de ressources. Chaque pièce (casque, plastron, jambières, bottes) est configurée individuellement.
📄 Structure de la configuration d'armure
color— Entier RVB pour la couleur de teinture du cuir (ex.16711680= rouge)custom_model_data— CMD pour chaque pièce d'armuredisplay_name— Nom d'affichage par piècelore— Lignes de description par pièceattributes— Modificateurs d'attributs vanilla (armor, armor_toughness, attack_damage…)
✨ Bonus de set d'armures (sets.yml)
Lorsqu'un joueur équipe toutes les pièces d'un set d'armures configuré, un bonus de set s'active. Les bonus peuvent inclure des effets de potion persistants, des boosts de statistiques et des messages diffusés.
🧱 Blocs personnalisés
Les blocs personnalisés utilisent le système de blocs de notes de Minecraft — chaque combinaison unique d'instrument + note correspond à une valeur Custom Model Data, fournissant des centaines de textures de blocs uniques sans mod client requis.
📦 Config de bloc de pack (configs/*.yml)
Les blocs sont des objets avec une section specific_properties.block. L'ID de l'objet, la texture et le modèle sont enregistrés comme un objet ordinaire, mais le comportement de placement de bloc est ajouté ci-dessous :
info:
namespace: my_pack
items:
custom_ore:
display_name: "Custom Ore"
resource:
material: PAPER # matériau de l'objet sous-jacent
generate: true # auto-générer un modèle de cube depuis 6 textures
textures: # [haut, bas, nord, sud, est, ouest]
- block/custom_ore_top
- block/custom_ore_bottom
- block/custom_ore_side
- block/custom_ore_side
- block/custom_ore_side
- block/custom_ore_side
specific_properties:
block:
placed_model:
type: REAL_NOTE # utilise le système de placement de bloc de notes
break_particles: BLOCK # type de particule à la casse
directional_mode: NONE # NONE / LOG (4 rotations) / AXIS (2 rotations)
cancel_drop: false # true = ne pas faire tomber l'objet lorsque cassé
hardness: 3.0 # résistance à l'extraction
sound:
break:
name: "BLOCK_STONE_BREAK"
volume: 1.0
pitch: 1.0
place:
name: "BLOCK_STONE_PLACE"
volume: 1.0
pitch: 1.0
Référence des champs specific_properties.block :
| Champ | Description |
|---|---|
placed_model.type | Toujours REAL_NOTE pour les blocs de pack (système d'état de bloc de notes) |
placed_model.break_particles | Type de particule à la casse — ex. BLOCK, ITEM |
placed_model.directional_mode | NONE — pas de rotation ; LOG — 4 directions de face ; AXIS — 2 directions d'axe |
cancel_drop | false = faire tomber l'objet lorsque cassé ; true = supprimer le drop |
hardness | Résistance à l'extraction (flottant). Correspond aux valeurs de dureté des blocs vanilla. |
sound.break / sound.place | Nom de son Bukkit + volume + hauteur joués à la casse/pose |
📂 Où placer les textures de blocs
Avec namespace: my_pack et generate: true avec les textures listées comme block/custom_ore_top :
resourcepack/assets/my_pack/textures/block/custom_ore_top.png resourcepack/assets/my_pack/textures/block/custom_ore_bottom.png resourcepack/assets/my_pack/textures/block/custom_ore_side.png
Si vous utilisez generate: false, fournissez un JSON de modèle à resourcepack/assets/my_pack/models/<model_path>.json qui référence vos textures.
🔨 Restrictions de casse
Configurez les outils autorisés avec break_with dans blocks.yml. Supporte les matériaux vanilla, HAND et les IDs de pioches personnalisées.
📦 Drops personnalisés
Chaque entrée de bloc dans blocks.yml peut définir des drops supplémentaires : objets de items.yml, objets de pack ou matériaux vanilla — avec des plages de quantités et des chances de drop.
🔊 Son & Particule
soundeffectonmined et visualeffectonmined se déclenchent lorsque le bloc est cassé, indépendamment de la configuration des récompenses.
🗺️ Persistance
Tous les blocs de pack posés sont sauvegardés dans pack_blocks.yml et survivent aux redémarrages du serveur avec l'état de texture correct restauré.
💰 Récompenses de blocs (xp_values dans blocks.yml)
La section xp_values dans blocks.yml associe les IDs de blocs aux récompenses données lorsqu'un joueur les casse. Supporte les blocs de pack personnalisés et les blocs Minecraft vanilla.
| Champ | Description |
|---|---|
name | Nom convivial du bloc utilisé dans les messages |
jobsxp | XP Jobs Reborn attribué à la casse |
job | Nom du métier Jobs recevant l'XP (ex. Miner) |
money | Argent de l'économie Vault déposé à la casse |
points | Points Jobs attribués à la casse |
cancel-vanilla-drops | true = supprimer les drops par défaut ; false = les conserver aux côtés des récompenses |
soundeffectonmined | Nom de son Bukkit joué à la casse |
visualeffectonmined | Nom d'effet de particule apparu à la casse |
bannedtools | Outils ne pouvant pas casser ce bloc (blocs vanilla uniquement) |
Drops | Drops de récompenses supplémentaires — type VANILLA, CMODELDATA ou COMMAND — chacun avec une chance, un message et une valeur de drop |
jobsxp, money et points lorsque l'intégration WorldGuard est activée.🌍 Générateur de minerais (generators.yml)
CustomiZer peut injecter automatiquement des blocs dans les chunks nouvellement générés — minerais personnalisés, blocs de pack décoratifs ou blocs vanilla — sans aucun plugin externe. Supporte les blocs vanilla, vos propres blocs de pack CustomiZer et les blocs ItemsAdder.
📋 Formats d'ID de bloc
| Format | Exemple | Ce qu'il place |
|---|---|---|
minecraft:<MATERIAL> | minecraft:gold_ore | N'importe quel bloc Minecraft vanilla — utilisez le nom du matériau Bukkit en minuscules après les deux points |
<packName>:<itemId> | blossom_studios:oak_beam | Un bloc de pack CustomiZer — doit être un bloc enregistré dans packs/ avec placed_model.type: REAL_NOTE |
<namespace>:<id> | myitems:custom_ore | Un bloc personnalisé ItemsAdder — le plugin ItemsAdder doit être installé |
📄 generators.yml — Référence complète de configuration
worlds_populators:
my_custom_ore:
block: blossom_studios:oak_beam # ID du bloc — voir formats ci-dessus
worlds:
- world # nom exact du dossier du monde
replaceable_blocks:
- STONE # noms de matériaux Bukkit (majuscules)
- DEEPSLATE
biomes: [] # vide = n'importe quel biome
# ou listez des biomes spécifiques : [PLAINS, DESERT, FOREST]
chance: 70.0 # 0–100 — % de probabilité que chaque tentative de veine place un bloc
amount: 8 # tentatives de placement de veine par chunk nouvellement généré
max_height: 45 # Y le plus élevé où ce minerai peut se générer
min_height: -60 # Y le plus bas (utilisez des valeurs négatives pour la couche de deepslate)
| Champ | Requis | Description |
|---|---|---|
block | Oui | ID du bloc à placer — voir le tableau des formats ci-dessus |
worlds | Oui | Liste des noms exacts de dossiers de monde où ce générateur s'exécute |
replaceable_blocks | Oui | Noms de matériaux Bukkit (majuscules) que ce minerai peut remplacer. Seuls les blocs de ces types seront écrasés. |
biomes | Non | Restreindre à des biomes spécifiques (majuscules, ex. PLAINS). Liste vide [] = générer dans n'importe quel biome. |
chance | Oui | 0–100 en pourcentage. Probabilité que chaque tentative de veine place réellement un bloc. 100 = toujours placer, 50 = 50% de chance par tentative. |
amount | Non | Nombre de tentatives de placement de veine par chunk nouvellement généré. Par défaut : 6. Plus élevé = génération de minerai plus dense. |
min_height | Oui | Niveau Y le plus bas où le minerai peut se générer. Utilisez des valeurs négatives pour les couches de deepslate (ex. -60). |
max_height | Oui | Niveau Y le plus élevé où le minerai peut se générer. |
⚡ Exemples rapides
Minerai dense en profondeur, n'importe quel biome :
my_deep_ore: block: minecraft:ancient_debris worlds: [world] replaceable_blocks: [NETHERRACK] biomes: [] chance: 40.0 amount: 3 min_height: -58 max_height: 16
Bloc de pack CustomiZer, plaines uniquement :
blood_ore: block: ultimate_armors:blood_ore worlds: [world] replaceable_blocks: [STONE, ANDESITE, GRANITE] biomes: [PLAINS] chance: 60.0 amount: 5 min_height: 10 max_height: 50
pack_blocks.yml — ils affichent la texture correcte, préviennent la corruption des physiques de blocs de notes, et font tomber les objets corrects lorsqu'ils sont cassés, tout comme les blocs placés par les joueurs.⛏️ Pioches personnalisées (pickaxes.yml)
Les pioches personnalisées montent en niveau à mesure que les joueurs minent avec elles. Chaque niveau débloque de meilleures statistiques, capacités et améliorations visuelles via des changements de données de modèle personnalisées.
📊 Système de niveaux
Chaque niveau nécessite un nombre défini de blocs minés (blocks_required). Au passage de niveau, le CMD change pour afficher une nouvelle texture et un message est envoyé.
🔲 Minage en rayon
radius et height_radius contrôlent combien de blocs supplémentaires sont cassés dans un cube autour du bloc cible.
⚗️ Effets de maintien
effect_on_hold applique un effet de potion pendant que la pioche est dans la main principale (ex. Hâte).
🎁 Drops bonus
bonus peut ajouter des drops supplémentaires (objets vanilla ou personnalisés) avec une chance configurée par niveau.
📋 Placeholders de description
Les lignes de description des pioches supportent des placeholders dynamiques qui se mettent à jour au fur et à mesure que la pioche monte en niveau :
{level}— Numéro du niveau actuel{blocks_mined}— Total de blocs minés avec cette pioche{blocks_required}— Blocs nécessaires pour atteindre le niveau suivant{progress}— Barre de progression visuelle
🌾 Houes de récolte (harvesterhoes.yml)
Les houes de récolte récoltent automatiquement les cultures dans une zone configurable. Elles récompensent également de l'argent et des XP de métiers par culture récoltée, avec des montants différents par type de culture.
📄 Structure de la houe
type— Matériau de houe vanilladisplay_name,lore— Cosmétiquescustom_model_data— Texture du pack de ressourceslevels— Carte de clés de niveau, chacune avec rayon, argent par culture, XP par culture, et remplacements de drop spécifiques par type de culture (WHEAT, CARROT, POTATO, etc.)abilities— Capacités par niveau (ex. replantation automatique, multiplicateur de fortune)
🏆 Système de maîtrise
Les joueurs gagnent de l'XP de maîtrise en effectuant des activités en jeu (casser des blocs, tuer des monstres, fabriquer, etc.). La maîtrise est divisée en plusieurs pistes, chacune avec 100 niveaux. Atteindre le niveau 100 dans toutes les pistes débloque le Prestige.
📈 Plusieurs pistes
Chaque piste représente un domaine de compétence différent. Les joueurs peuvent se spécialiser ou progresser dans toutes les pistes simultanément.
🎖️ Récompenses de niveau
Récompenses configurables par palier de niveau de maîtrise — commandes, objets, argent ou effets.
📊 Classements
Visualisez la progression de maîtrise pour vous-même ou n'importe quel joueur en ligne avec /zmastery [player].
🔌 PlaceholderAPI
Les niveaux de maîtrise et la progression des pistes sont exposés comme placeholders PAPI pour une utilisation dans les tableaux de scores, le chat et les hologrammes.
📋 Système de missions
Les joueurs complètent des missions quotidiennes et hebdomadaires pour gagner des récompenses. Les missions se réinitialisent selon un planning configurable et sont affichées dans un GUI paginé.
| Fonctionnalité | Détails |
|---|---|
| Types de missions | Casser des blocs, tuer des monstres, miner des minerais spécifiques, utiliser des objets, et plus |
| Plannings de réinitialisation | Quotidien et hebdomadaire — heures de réinitialisation configurables |
| Récompenses | Commandes, argent économique, objets personnalisés, XP de maîtrise |
| GUI | Tableau de missions paginé avec barres de progression et statut de complétion |
| Message de complétion | Message diffusé envoyé au joueur lors de la complétion d'une mission |
⭐ Système de prestige
Lorsqu'un joueur atteint le niveau 100 dans toutes les pistes de maîtrise, il peut effectuer un prestige. Le prestige remet tous les niveaux de maîtrise à 0 mais accorde un niveau de prestige permanent affiché dans son profil.
/zprestige confirm après la commande initiale pour éviter les réinitialisations accidentelles.🔮 Système de reforgement
Les joueurs peuvent reforger des objets personnalisés à la station de reforgement pour appliquer des modificateurs aléatoires qui boostent les statistiques. Chaque reforgement coûte un montant configurable de monnaie en jeu.
🎲 Comment fonctionne le reforgement
- Ouvrez la station de reforgement via
/zreforgeou le GUI. - Placez l'objet que vous souhaitez reforger dans l'emplacement de la station.
- Payez le coût de reforgement (économie Vault).
- Un modificateur aléatoire est appliqué — les modificateurs peuvent changer les dégâts d'attaque, la vitesse, la défense ou appliquer des effets spéciaux.
- Relancez autant de fois que souhaité pour obtenir le modificateur voulu.
💎 Système d'emplacements de gemmes
Des emplacements de gemmes peuvent être ajoutés aux objets. Les joueurs insèrent des objets gemmes dans les emplacements pour booster définitivement les statistiques de l'objet.
| Commande | Ce qu'elle fait |
|---|---|
/zsocket add <count> | Commande admin — ajoute des emplacements de socket à l'objet en main |
/zsocket info | Affiche combien de sockets l'objet en main possède et quelles gemmes sont enchâssées |
/zsocket extract | Retire et détruit la gemme dans l'emplacement 1, libérant l'emplacement de socket |
| Clic droit gemme sur objet | Insère la gemme dans le premier emplacement de socket disponible |
🗃️ Système GUI (gui.yml)
Tous les GUIs sont entièrement configurables depuis plugins/CustomiZer/gui.yml. Chaque catégorie, sous-catégorie et bouton de pagination peut avoir un matériau personnalisé, CMD, nom, description, emplacement et décoration.
📂 Menu de catégories
Le GUI principal des catégories affiche des boutons pour chaque type de contenu : Objets, Épées, Armures, Blocs, Pioches, Houes et Cosmétiques. Cliquer sur une catégorie ouvre un menu de sous-catégorie.
📑 Onglets de sous-catégories
Chaque catégorie a deux onglets :
- Objets configurés — objets définis dans les fichiers de configuration principaux du plugin (items.yml, swords.yml, etc.)
- Objets de pack — objets provenant des packs installés dans le dossier packs/
Les deux onglets sont paginés indépendamment. Chaque catégorie a sa propre configuration de sous-catégorie (titre, matériaux, emplacements) dans gui.yml.
🎨 Décoration & Bordures
Chaque section GUI supporte un objet de fond configurable (remplit les emplacements vides) et un objet de bordure (remplit le cadre du GUI). Les deux peuvent être n'importe quel matériau avec un CMD personnalisé.
📄 Pagination
Lorsque le nombre d'objets dépasse les emplacements disponibles, la pagination s'active automatiquement. Les boutons page précédente, page suivante et fermer sont tous individuellement configurables par catégorie avec des matériaux personnalisés, CMD, nom et position d'emplacement.
🔌 Intégrations
💰 Vault
Toutes les récompenses économiques (casses de blocs, utilisation d'objets, coûts de reforgement) passent par Vault. Compatible avec tout plugin d'économie supportant Vault.
⚒️ Jobs Reborn
Casser des blocs configurés dans xp_values attribue directement de l'XP Jobs à la progression du métier du joueur. Les blocs de pack personnalisés et les blocs vanilla sont tous deux supportés.
🗺️ WorldGuard
Multiplicateurs et diviseurs d'XP et d'argent basés sur les régions, et plannings de boost basés sur le temps. Configurez la mise à l'échelle des récompenses par région sans toucher aux configurations individuelles de blocs.
📊 PlaceholderAPI
Expose les niveaux de maîtrise, le niveau de prestige et d'autres statistiques de joueurs comme placeholders PAPI pour les tableaux de scores, la mise en forme du chat et les hologrammes.
🎭 ModelEngine
Si ModelEngine est installé, son pack de ressources est automatiquement fusionné dans le pack généré par CustomiZer pour éviter deux packs conflictuels.
🧊 ItemsAdder
Intégration optionnelle pour détecter les blocs personnalisés ItemsAdder dans les événements de récompenses. Peut être entièrement désactivée dans settings.yml.
⚙️ Paramètres & Fichiers de configuration
| Fichier | Utilité |
|---|---|
config.yml | IP/port du serveur pour le pack de ressources, langue, bascules de barre d'action/bossbar, multiplicateurs de région WorldGuard |
settings.yml | Activer/désactiver les intégrations : itemsadder_support, worldguard_integration_support, jobs_support (tous false par défaut) |
blocks.yml | Blocs posables personnalisés (restrictions de casse, drops, son/particule) + récompenses de blocs xp_values |
items.yml | Objets personnalisés au clic droit et leurs actions |
swords.yml | Épées personnalisées avec niveaux de rareté |
armors.yml | Sets d'armures en cuir personnalisées |
sets.yml | Définitions des bonus de sets d'armures |
pickaxes.yml | Pioches personnalisées à montée en niveau |
harvesterhoes.yml | Définitions des houes de récolte |
generators.yml | Générateur de minerais/blocs du monde — définit les règles d'injection de blocs personnalisés par monde, biome, plage de hauteur et chance |
gui.yml | Toutes les mises en page GUI — tailles, titres, matériaux/emplacements des boutons, décoration, pagination |
customfonts.yml | Remplacements globaux de l'échelle/position des images de police de pack (priorité sur les configs de pack à chaque démarrage) |
rarity.yml | Définitions des niveaux de rareté et noms d'affichage |
lang/en.yml lang/fr.yml | Tous les messages du plugin en anglais et en français |
packs/ | Dossiers de packs à déposer (chacun avec configs/ et resourcepack/) |
includes/ | Fichiers supplémentaires de pack de ressources fusionnés dans le pack généré |
models/ | Fichiers de modèle JSON pour les pioches personnalisées |
/z reload. Pour reconstruire uniquement le pack de ressources sans rechargement complet de la configuration, utilisez /zpack zip. Aucune des deux commandes ne nécessite un redémarrage du serveur.