GroupeZ Docs

Hot Reload

Edit your inventories and see the result instantly in game, without any command

Save the file, the menu is updated. No command, no restart. With the hot reload enabled, zMenu watches your inventories/ folder and applies every change on its own: edit a file in your editor, upload it over SFTP or pull it from git, and players see the new version instantly, even if they have the menu open.

# config.yml
hot-reload:
  enable: true
  delay-milliseconds: 500

Then run /zm reload config once (or /zm reload) to start watching. From now on, you never need /zm reload for your inventories again.

Perfect for creating menus

Open the menu in game, put your editor next to it, and design live: move a button, change a lore line, fix a requirement, save, and the menu reopens with your change on the same page. Combined with the DeluxeMenus converter, it is the fastest way to polish converted menus.

What it does

You...zMenu...
Modify a fileReloads the inventory
Create a fileLoads the new inventory
Delete a file (or a whole folder)Unloads the inventory and closes it for its viewers

Subfolders of inventories/ are watched too.

Players keep their place

Players viewing an inventory when it is reloaded see the new version open over it instantly:

  • on the same page,
  • with the same previous inventories, so a back button opens the new version too.

If the inventory is unloaded (file deleted, or enable: false added to it), it is closed.

Errors never break a menu

A file that cannot be loaded (YAML syntax error, unknown button type, invalid size...) is not applied: the previous version stays loaded and playable, and the error is shown in the console until you fix the file. You can save half-finished work without breaking anything for your players.

Works everywhere

  • Debounced saves: text editors often save a file in several steps. zMenu waits delay-milliseconds (500 ms by default) after the last change, so a save triggers only one reload.
  • Docker, Pterodactyl, WSL, network shares, SFTP: on top of the file system events, the folder is scanned every two seconds, so changes are detected even where the file system sends no event.
  • Backups and git: if the inventories/ folder is deleted and recreated (backup restore, git checkout...), it is watched again automatically.
  • Windows: the whole tree is watched with a single handle, so subfolders can still be renamed or deleted while the server runs.
  • No useless reload: a file is reloaded when its content or modification date changes. Saving it again without any change still reloads it, but the same version is never reloaded twice.

Configuration

OptionDefaultDescription
enablefalseEnables the hot reload
delay-milliseconds500Time to wait after the last change of a file before reloading it

Enabling or disabling the option takes effect after /zm reload or /zm reload config, or within two seconds when changed from the in-game configuration dialog.

What is watched

Only the inventories/ folder is watched. Files listed in specify-path-menus, patterns, commands and dialogs still require /zm reload.

Console logs

Every detection, reload, unload and error is logged in the console with a [HotReload] prefix:

[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).

With enable-debug set to true, each file event, each change found by the scan and each ignored (unchanged) file is logged as well.

Troubleshooting

Nothing happens when I save a file

  1. Check that the Inventory hot reload enabled line appears at startup or after /zm reload.
  2. Check that the file is in inventories/ and not loaded through specify-path-menus.
  3. Enable enable-debug to see whether the change is detected.

My change is not applied The file probably contains an error: look for it in the console. The previous version stays loaded until the file is valid.

When to enable it

  • While creating or editing menus, to see your changes instantly
  • On a test or development server
  • On production servers where menus are deployed by SFTP or git and must be picked up without a command

Next Steps

On this page

GroupeZ MCP

Documentation in your AI

MCP lets your AI search GroupeZ documentation and read current examples to help you configure your plugins.

Read-only · No documentation API key needed

1. Copy the server URL

Transport: HTTP (Streamable HTTP). Authentication: none. Your tool uses its own model and subscription limits.

  1. Open Plugins in ChatGPT on the web, then + → Add custom MCP server.
  2. Name it ‘GroupeZ Documentation’, paste the URL above and choose ‘No authentication’. Create and install the plugin.
  3. In a conversation, type @ and select the plugin before asking. If needed, enable search, get_page and list_pages in its settings.
Official setup guide

3. Ask a question

Use GroupeZ MCP to help me create a zMenu inventory. Search relevant pages, read the examples and cite your sources.
Other clients and troubleshooting

For clients using mcpServers, adapt this example to their format:

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

Available tools are search, get_page and list_pages. Refresh the connector’s tools after updates. If your AI cannot access them, check that the connector is enabled in the conversation and your account allows custom MCP servers. Opening the URL in a browser is not an MCP test.