MiaoMenu_fork icon

MiaoMenu_fork -----

One menu plugin for Java and Bedrock players — same YAML, two clients.



MiaoMenu_fork — Dual-Platform Menus, Done Right

One plugin. Two player worlds. MiaoMenu_fork shows Java players a familiar chest GUI and Bedrock players a native Floodgate form — driven by the same YAML files. No duplicated logic, no double-maintenance. Pair it with Geyser + Floodgate and you're done.

It's a hard fork of the original MiaoMenu tracking Paper / Folia 26.1.2 (with 26.2 alpha compatibility), restructured around a clean lang/*.yml system and drop-in migration from legacy plugin folders.

Why MiaoMenu_fork?
  • One config, two clients. Same view_requirement, conditions, requirement_blocks and material resolver power both Java chest menus and Bedrock forms.
  • Drop-in migration. First start auto-imports plugins/dmenu/, plugins/DGeyserMenu/, plugins/dgeysermenu/, or plugins/MiaoMenu/. Old folders are left untouched.
  • Speaks your language. All visible text lives in lang/<code>.yml. Ships with English and Traditional Chinese; add a new locale by copying one file.
  • Hot-reload everywhere. Edit menus or lang files — they reload live, no server restart.
  • Cross-server ready. Velocity / BungeeCord-style server <name> jumps work straight from menu buttons.
  • Plays nice with item plugins. CraftEngine, ItemsAdder, MMOItems, HeadDB and Base64 heads all resolved through one material string, with a configurable fallback.

Features
  • Native dual-platform menus — chest GUI for Java, Floodgate form for Bedrock, auto-dispatched by player type.
  • One smart entry point/dgm open <menu> works for everyone; the plugin figures out the right surface.
  • Condition system — menu-level view_requirement, item-level conditions, reusable requirement_blocks. AND / OR operators, nested children, permission / advancement / progress / scoreboard / placeholder checks.
  • Friendly denials — every condition can supply a deny_message and a fallback_menu to redirect rejected players elsewhere.
  • Menu clock — auto-given on join, death-protected, right-click opens the default menu. Configurable on/off per server.
  • Open-menu sound — optional ambient sound when a menu opens (configurable name / volume / pitch).
  • Hot-reload watcher — debounced file watcher for config.yml, java_menus/, bedrock_menus/, lang/.
  • Cross-server commands — Velocity / BungeeCord auto-detected; [player] server lobby from a menu just works.
  • PlaceholderAPI — full variable support in titles, lore, condition values and lock messages.
  • Built-in safetyInputValidator rejects shell-injection-like content in [cmd] actions; per-player click rate-limiter prevents spam.
  • Legacy migratorLegacyDataMigrator scans plugins/<candidate>/ on first start and copies the whole folder in.
  • i18nlang/en.yml (default), lang/zh_TW.yml, plus a setDefaults fallback so missing keys never show as raw strings.
  • Backward-compatible — original /dgeysermenu, /dgm, /fluxmenu commands, dgeysermenu.* permissions and existing config.yml keys are preserved.

How it works
  1. Drop the jar in plugins/. On first start, MiaoMenu_fork creates config.yml, lang/en.yml, lang/zh_TW.yml, plus sample menus under java_menus/ and bedrock_menus/. If a legacy folder exists, its data is auto-imported.
  2. Edit a YAML menu — both Java and Bedrock players will see the same logical buttons.
  3. A player runs /dgm open <menu>. The plugin checks view_requirement, picks the right surface (chest or Floodgate form), and renders the menu with all conditions evaluated.
  4. Save your YAML — hot-reload picks it up. Players opening the menu next see the updated version.

Commands & Permissions
  • /dgeysermenu open <menu> — perm dgeysermenu.use — Open a menu by name (Java or Bedrock auto-picked)
  • /dgm open <menu> — perm dgeysermenu.use — Short alias for /dgeysermenu
  • /fluxmenu open <menu> — perm dgeysermenu.use — Legacy alias (preserved)
  • /mmf open <menu> — perm dgeysermenu.use — New fork alias
  • /dgm reload — perm dgeysermenu.reload — Reload config, lang files and menu definitions
  • /dgm help — perm dgeysermenu.use — Print help, localised
  • /getmenuclock — perm dgeysermenu.admin — Grant the caller a menu clock

Permission tree: dgeysermenu.use (default everyone), dgeysermenu.admin (default op), dgeysermenu.reload (default op), dgeysermenu.* (all).

Configuration
A small config.yml (language, open-menu sound, default menu, hot-reload toggle, sample auto-gen, proxy mode, fallback material, menu-clock options) plus per-language lang/<code>.yml for every visible string. Menus go under java_menus/ and bedrock_menus/ with parallel YAML schemas. Edit, then /dgm reload — no restart.

Requirements
  • Paper / Folia 26.1.2 (also runs on 26.2 alpha)
  • Java 21
  • (Optional) Floodgate 2.2.5+ and Geyser 2.10.x for Bedrock support
  • (Optional) PlaceholderAPI for %placeholders%
  • (Optional) Velocity / BungeeCord proxy for server <name> jumps
  • (Optional) CraftEngine / ItemsAdder / MMOItems / HeadDatabase for custom items

Links
Resource Information
Author:
----------
Total Downloads: 7
First Release: Jun 20, 2026
Last Update: Jun 20, 2026
Category: ---------------
All-Time Rating:
0 ratings
Find more info at modrinth.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings