Skip to main content

Configuration Informations

This page provides essential information about how to configure zMenu and understand its configuration philosophy.

Understanding YAML

zMenu uses YAML (YAML Ain't Markup Language) for all its configuration files. If you're new to YAML, here are some important things to know:

Basic YAML Rules

  1. Indentation matters - Use spaces (not tabs) for indentation
  2. Consistent spacing - Use 2 spaces per indentation level
  3. Case sensitive - Material is different from material
  4. Colons need spaces - key: value not key:value

Example Structure

# This is a comment
inventory-name: "My Inventory" # String value
size: 54 # Number value
enabled: true # Boolean value

items: # Start of a section
my-button: # Button name (key)
slot: 0 # Property of my-button
item: # Nested section
material: DIAMOND
name: "&bDiamond"

Useful Tools

  • YAML Validator: YAML Lint - Check your YAML syntax
  • VS Code Extension: YAML by Red Hat - Syntax highlighting and validation
  • Notepad++: Lightweight editor with YAML support

Configuration Philosophy

zMenu follows a modular configuration approach:

File Organization

plugins/zMenu/
├── config.yml # Global settings
├── global-placeholders.yml # Shared values
├── commands/ # Command definitions
│ └── commands.yml
├── inventories/ # Your menus
│ ├── menu1.yml
│ └── subfolder/
│ └── menu2.yml
├── patterns/ # Reusable templates
├── items/ # Reusable items
└── actions_patterns/ # Default actions

Key Principles

  1. One inventory per file - Each YAML file in inventories/ defines one inventory
  2. Subfolders supported - Organize inventories in subfolders
  3. Reusability - Use patterns and items to avoid repetition
  4. Hot reload - Use /zm reload to apply changes without restart

Color Codes

zMenu supports multiple color code formats:

Legacy Color Codes

Using the & symbol:

CodeColorCodeColor
&0Black&8Dark Gray
&1Dark Blue&9Blue
&2Dark Green&aGreen
&3Dark Aqua&bAqua
&4Dark Red&cRed
&5Dark Purple&dLight Purple
&6Gold&eYellow
&7Gray&fWhite

Formatting Codes

CodeEffect
&lBold
&oItalic
&nUnderline
&mStrikethrough
&kObfuscated
&rReset

Hex Colors

name: "&#FF5555This is red &#55FF55and this is green"

MiniMessage (Paper/Purpur)

If you're using Paper, Purpur, or Pufferfish, you can enable MiniMessage format in config.yml:

enable-mini-message-format: true

Then use MiniMessage syntax:

name: "<gradient:red:blue>Gradient Text</gradient>"
lore:
- "<rainbow>Rainbow text!</rainbow>"
- "<bold><gold>Bold gold text</gold></bold>"
- "<click:run_command:/spawn>Click to spawn</click>"

Placeholders

zMenu supports placeholders throughout your configurations:

PlaceholderAPI

Any PlaceholderAPI placeholder works in zMenu:

name: "&6%player_name%'s Profile"
lore:
- "&7Balance: &a$%vault_eco_balance%"
- "&7Level: &e%player_level%"

zMenu Built-in Placeholders

PlaceholderDescription
%player%Player name
%page%Current page number
%maxPage% or %max-page%Total pages
%zmenu_player_page%Current page
%zmenu_player_max_page%Maximum page

See the Placeholders page for the complete list.

Reloading Configurations

After making changes, reload your configurations:

/zm reload                    # Reload everything
/zm reload config # Reload config.yml only
/zm reload inventory [name] # Reload specific inventory
/zm reload command [name] # Reload specific command
tip

Use /zm reload inventory <name> when testing changes to a specific inventory - it's faster than reloading everything.

Common Mistakes

1. Incorrect Indentation

# Wrong
items:
my-button:
slot: 0

# Correct
items:
my-button:
slot: 0

2. Missing Quotes for Special Characters

# Wrong - will cause parsing error
name: &6My Menu

# Correct
name: "&6My Menu"

3. Tab Characters

YAML doesn't allow tabs. Always use spaces:

# Wrong (tabs)
items:
→ my-button:
→ → slot: 0

# Correct (spaces)
items:
my-button:
slot: 0

4. Duplicate Keys

# Wrong - second 'slot' overwrites first
my-button:
slot: 0
slot: 1

# Correct
my-button:
slot: 0
another-button:
slot: 1

File Encoding

Always save your files with UTF-8 encoding to properly support:

  • Special characters
  • Non-English text
  • Color codes

Most modern text editors use UTF-8 by default, but check your editor's settings if you experience issues with special characters.

Next Steps

Now that you understand the basics:

  1. Learn about Commands & Permissions
  2. Explore available Placeholders
  3. Create your first inventory
Copyright © 2026 GroupeZ|Build #loading...|-