Installing zMenu
How to download, install, and configure zMenu on your Minecraft server
This guide will walk you through the process of installing zMenu on your Minecraft server.
Requirements
Before installing zMenu, make sure your server meets the following requirements:
| Requirement | Version |
|---|---|
| Minecraft | 1.20.6 and newer (Paper 26+ supported) |
| Java | Java 21 (required) |
| Server Software | Paper, Purpur, Pufferfish, or Folia |
Paper is required
zMenu is a Paper-only plugin — it ships a paper-plugin.yml, which only Paper reads. Run it on Paper, a Paper fork (Purpur / Pufferfish) or Folia.
On Spigot the plugin still loads and enables, but nothing works: no menu, no command, no API. It only prints a warning in the console, and sends the same warning on join to players holding zmenu.paper.warning (operators by default), telling you to install Paper.
Recommended Setup
For the best experience, we recommend using Paper or Purpur. This enables MiniMessage formatting support and provides better performance.
Migrating from DeluxeMenus?
Keep your menus: once zMenu is installed, run /zm convert deluxemenus to convert every DeluxeMenus menu into a zMenu inventory. See Migrate from DeluxeMenus.
First start needs internet
On first load zMenu downloads a few runtime libraries (the MariaDB driver and Reflections) through Paper's library loader. On a restricted network you can point it at a mirror with the PAPER_DEFAULT_CENTRAL_REPOSITORY environment variable or the -Dorg.bukkit.plugin.java.LibraryLoader.centralURL JVM flag.
Download
You can download zMenu from the following sources:
- Modrinth (Primary): https://modrinth.com/plugin/zmenu
- SpigotMC: https://www.spigotmc.org/resources/zmenu.110402/
Development Builds
Get the latest development versions in the #builds channel on Discord.
Installation Steps
Step 1: Download the Plugin
Download the latest version of zMenu.jar from one of the sources listed above.
Step 2: Install the Plugin
- Stop your Minecraft server if it's running
- Place the
zMenu.jarfile in your server'splugins/folder - Start your server
Step 3: Verify Installation
After starting your server, verify that zMenu loaded correctly:
-
Check the server console for:
[zMenu] zMenu has been enabled! -
Run the command
/zm versionin-game or from console to see version information
Step 4: Initial Configuration
After the first startup, zMenu will create the following folder structure:
plugins/zMenu/
├── config.yml # Main configuration file
├── global-placeholders.yml # Global placeholder values
├── commands/
│ └── commands.yml # Custom command definitions
├── inventories/
│ ├── basic_inventory.yml # Example inventory
│ ├── advanced_inventory.yml # Advanced example
│ └── pro_inventory.yml # Pro example
├── patterns/
│ └── pattern_example.yml # Example pattern
├── items/
│ └── default-items.yml # Reusable item definitions
├── actions_patterns/
│ └── default-actions.yml # Default action patterns
└── dialogs/ # Dialog templates (1.20.5+)Optional Dependencies
zMenu works standalone but integrates with many popular plugins for enhanced functionality:
Recommended Plugins
| Plugin | Purpose |
|---|---|
| PlaceholderAPI | Display dynamic values in items and messages |
| Vault | Economy integration |
| LuckPerms | Permission-based requirements |
Item Plugins (Optional)
These plugins allow you to use custom items in your menus:
| Plugin | Integration |
|---|---|
| ItemsAdder | Custom items and textures |
| Oraxen | Custom items and models |
| HeadDatabase | Custom player heads |
| Slimefun | Slimefun items |
| MythicMobs | MythicMobs items |
| ExecutableItems | ExecutableItems support |
Other Integrations
| Plugin | Integration |
|---|---|
| Jobs Reborn | Job level requirements |
| zHead | Custom head textures |
| packetevents | Required for dialog system (1.20.5+) |
Configuration Files
config.yml
The main configuration file controls global plugin settings. Here's an overview of key options:
# Enable debug mode for troubleshooting
enable-debug: false
# Database settings (SQLITE, MYSQL, MARIADB, or NONE)
storage-type: SQLITE
# Enable MiniMessage formatting (Paper/Purpur only)
enable-mini-message-format: true
# Cache settings for performance
enable-cache-item-stack: true
enable-cache-placeholder-api: false
# Anti-dupe protection
enable-anti-dupe: true
# Click cooldown to prevent spam
enable-cooldown-click: true
cooldown-click-milliseconds: 100
# Default inventory opened by main menu button
main-menu: "example"See the config.yml documentation for all available options.
Troubleshooting
Plugin Not Loading
If zMenu doesn't appear in /plugins:
- Check console for errors during startup
- Verify the JAR file isn't corrupted (re-download if needed)
- Make sure you're using a compatible server version
Configuration Errors
If you see YAML parsing errors:
- Use a YAML validator like YAML Lint
- Check for incorrect indentation (use spaces, not tabs)
- Ensure special characters are quoted properly
Placeholders Not Working
If PlaceholderAPI placeholders don't work:
- Make sure PlaceholderAPI is installed
- Install the required expansion:
/papi ecloud download <expansion> - Reload PlaceholderAPI:
/papi reload
Updating zMenu
To update zMenu:
- Download the latest version
- Stop your server
- Replace the old
zMenu.jarwith the new one - Start your server
- Run
/zm reloadif configurations haven't changed
Backup First
Always backup your plugins/zMenu/ folder before updating, especially if you've customized configurations.
Next Steps
Now that zMenu is installed, learn how to: