premium banner
Customizable & Clean Server Menu Solution. Run Commands through an immersive, aesthetic UI. Stop typing commands now! Unlimited Buttons. Unlimited Pages/Tabs. Multiple different Menus.

Description

Enhance your User-Experience and provide your Server with an immersive, beautiful UI to Bundle all important Commands. Elevate your Server to the next level and say goodbye to old-fashioned commands! You can edit it all in-game in the ConfigUI. There is no need to edit Config files.

 

Installation Instructions

Correct Setup


Extract `HyMenuBundle.zip`
move `HyMenu-*.jar` and `HyMenuAssets.zip` inside your `mods/` folder

ignore `manifest.json`


mods/
  |
  ├─── HyMenu-*.jar
  |
  ├─── HyMenuAssets.zip
  |
  └─── your other mods

Custom Icons & Custom Logo

HyMenu will extract the contents of HyMenuAssets.zip in the Directory HyMenuAssets and will not overwrite existing files.
If you added new Icons with different names than the existing ones they will alsonot be overwritten after an update.


 HyMenuAssets
    |
    ├─── Common/UI/Custom/ ┬─ Icons/ <─ Add your own Icons here *
    |
    └─ Logo.png <─ Replace with your Logo *

  * also works while the server runs and gets updated immediately.


 

Provide all the Buttons your Users need and let them have a command-free experience!

-> this is an Example and has to be configured! HyMenu does NOT provide any of the commands itself, but the UI and buttons. 
     it is used to run the commands and open UIs from other mods and plugins

 

This Mod/Plugin enables you to choose wich commands your players should be able to see without reading through a website or discord channel.

Commands have never been this accessible for your everyday-User!


 

 

Join the discord server to view FAQ, get faster Support, make your feature suggestions or report bugs.
Thanks to anyone helping me with their Feedback!

 


Features

 Work in Progress

To-Do's: 
✅ = served. 
🧑‍🍳= cooking..  
⬜ = preparing ingredients

  • ✅ - Configurable "Alt"-Keybind (Use or no Use :D)
  • ✅ - UI for Admins to configure everything with an UI 
  • ✅ - Customizable and browsable Icons
  • ✅ - Edit Items and Reorder List
  • ✅ - Configure visibility of Overview, Warp List, etc.
  • ✅ - multiple configurable Overview type "Tabs"
  • ✅ - Run as Player / Server 
  • ✅ - Run multiple commands with one button
  • ✅ - Simple Placeholders e.g. {player}, {uuid} for commands
  • ✅ - Full PAPI  (PlaceholderAPI) support in commands
  • ✅ - Rename Overview/Warps/Commands/Custom Pages
  • ✅ - Changeable button size for Overview type pages
  • ✅ - Parameters via Textfield on Buttons
  • ✅ - Move additional pages in Config UI
  • ✅ - Hide buttons on pages with permissions 
  • ✅  - Collapse buttons in Config UI on headers for better focus while editing/adding stuff without scrolling too much
  • ✅  - Send messages to the user (use : at start of line)
  • ✅  - Send Hyperlinks in users chat to click on (automatically identified with http:// and https:// )
  • ✅ - Configure and open Pages with commands. that are not initially accessible from the top bar
  • ✅ - Blacklist Permissions (cannot open menu)
  • ✅ - Whitelist Permissions (ignore blacklist)
  • ✅ - Change command to open menu
  • ✅ - set multiple permissions for buttons and pages
  • ✅ - Configurable per Player Page (Shortcuts / Favorites)
  • ✅ - per Player Configs 
  • ✅ - Reload Button in ConfigUI
  • ✅ - Logo on top left changeable
  • ✅ - Add your own Images as Icons
  • ✅ - Dynamically reload Icons/Logo without Server restart
  • ✅ - Localization (WIP)
  • ✅ - Create multiple different menus
  • ✅ - Disable Buttons via Placeholder evaluation (PAPI required)
  • ✅ - Add Delay to Command Execution 
  • ✅ - Add Delay between multiple commands in chain 
  • ✅ - Change Button Size, Icon Size, Text Size, horizontal spacing between buttons
  • ✅ - Add Description, Tooltip and Tooltip when disabled to buttons
  • ✅ - Shortcut/Favorites Page per Menu and per User
  • 🧑‍🍳 - Reorder All Pages regardless of type
  •  
  • ⬜ - Different Button Types to choose from (design, Usability) -> Server Buttons
  • ⬜ - other generic pages beside overview type -> Rules/Info Page, Welcome Screen
  • ⬜ - Configurations for Commands Page -> different Styles, Configurable options (hide permissions)
  • ⬜ - need currency for button use

⚠️ - Feel free to make suggestions in the comments

 


 

 

Overview Page

[ -> Can be completely hidden or just visible with configured permission]


An Overview Page where u can configure what Shortcuts to commands from other plugins your users should be able to see 


 

User /Shortcuts Page + per User configs

[ -> Can be completely hidden / disabled]

Let the players pick what they use the most and add it to their own shortcuts page. it respects permissions of the buttons and their parent tab / page and you can even restrict usage for Shortcuts per button.
when you change buttons they also get updated for the user page (even permissions etc) so if the user cannot use / see the button it gets removed from their page until they have the permission again.

Choose what you wanna see

 

You can enable/disable this as admin: 

 


Custom Pages

[ -> Can be completely hidden or just visible with configured permission]


An Multiple Overview type pages where u can configure the name and what Shortcuts to commands from other plugins your users should be able to see. You can configure the command (Placeholders supported!) and even change the size of each button individually.

Command to open Custom Pages (even those that are not visible in the Top Bar)

Examples/Usage:

  • /open pageidwithoutspaces
  • /open "pageidwithoutspaces"
  • /open 'page id with spaces'
  • /open "page id with spaces" 
     Permission: b3cks.hymenu.command.open
  • /open "page id" --player=playername  -> opens for the player
  • -> usable from console but still respects if the player is allowed to open
    Permission: b3cks.hymenu.command.open.other

    /open "page id" --player=playername --ignorePermission=true
  • -> opens menu for speciified and does not care about permissions
    Permission: b3cks.hymenu.command.open.other.bypass
  • aliases: openpage, opencustom, opencustompage, opensubmenu, hymenupage
  • if the page id contains spaces always enclose it with " " or ' ' - both work
  • works with my buttons just like any other command
  • now you can create endless submenus and navigate between them with the commands/buttons
  • you can see the page ids now when hovering over the name in the headers of the config UI use those and not the names
  • editing IDs will get added later, atm they take the name you first gave them but do not track changes.
  • so after adding a page named "test" you can only add another "test1" and rename it to test back again so they have the same name. 

  • each button now can accept arguments. 
    • you can check "Accept Arguments" wich shows a textbox on the button. here you can write what should be added as argument to the command.
    • use {arg} placeholder inside commands to replace this with the entered argument.
    • if you do not specify an {arg} placeholder the argument gets added to the end of EVERY command in the chain if there are more then 1
    • if you specify an {arg} placeholder only this will get exchanged, if there are more commands in the chain it will only look for {arg} placeholders and ignore commands without it. those will get executet exactly as specified. 
    • even other placeholders inside of the Arguments are possible!

examples with argument box

Send Messages with Hyperlinks and Colors to Users on button click

  • start the command line with ":" and it will become a message
  • hex colors supported (#123456, #ffffff,...)
  • use hyperlinks in button messages
  • use Placeholders (internal & PAPI) in Messages
  • if a hyperlink is in the message it automatically counts as mesage and no ":" is needed at start of line

    below some working examples: 

     

 

        https://google.de
        https://google.de is a test
        #00ffffvisit #00ffffhttp://google.de to #6600ffread the rules
        : #E2B40D{arg}
        :visit #ff00ffhttp://test.de to #6600ffread the rules
        :this is #E2B40Dfantastic #fffffffor #97B237messages #ffffffto  #00ff00Players ({player})
        :#ff55ffall in one color
        :no color
        :#00ff00WORKING #ffffffas #ff0000intended #0000ff !!!!!!

 

 

Warp List

 [-> Can be completely hidden or just visible with configured permission]

a convinient and fast accessible Warp List

uses the default hytale warp permissions


 

User Commands

[ -> Can be completely hidden or just visible with configured permission]

and a List of Commands, but they are filtered via permission AND configuration.
This means that your Users can only see the commands you specified to avoid seeing too many commands, that no one is ever going to use. You also get an additional button to use the command without sending it to chat first.

Since there is no tabcompletion yet and not every plugin/mod offers an UI this can be a really helpful tool.

 


 

Config UI - Your Admin Tool

Permission: b3cks.hymenu.configui

No manual Config file editing or via commands needed! You can do it all from inside the Edit Config UI.

Check what your placeholders inside of your commands evaluate to when you hover over the command List

PAPI needs to be installed with the needed expansions for '%' placeholders to work

Check set permission when hovering over the Tab name:

and edit when you also edit the name

Configure each button how you like! you can even edit them after


Permissions

Important;

User:      b3cks.hymenu.command.menu -> needed to open menu with keybind
                b3cks.hymenu.command.menu.hymenu -> replace "hymenu" with the name of the menu
                                                                                           -> needed to open menu with its respective configured command
       b3cks.hymenu.command.open -> open pages via command


Admin:  b3cks.hymenu.configui                -> needed to open Config UI
               b3cks.hymenu.command.menu.reload  -> needed to use Full reload              
       b3cks.hymenu.command.menu.hymenu.reload  -> needed to use menu reload (replace "hymenu" with the menu name)
       b3cks.hymenu.command.open.other -> open pages for others via command
       b3cks.hymenu.command.open.other.bypass -> open pages for others via command with option to ignore permnissions

 

run commands 
/perm group add Adventure b3cks.hymenu.command.menu (alt-Keybind permission)
/perm group add Adventure b3cks.hymenu.command.menu.hymenu (default menu permission)

to let everyone use the menu without adding extra groups like this. 
if your server supports creative mode you should also run
/perm group add Creative b3cks.hymenu.command.menu (alt-Keybind permission)
/perm group add Creative b3cks.hymenu.command.menu.hymenu (default menu permission)

 

Commands

Per default it uses the "Alt"-Key Workaround to open the menu without needing to write a command.

this behaviour can be turned off in the Settings.

 
thanks to terantia2024

For those that don't want to use the 'alt' key for whatever reason, you can use the Okey mod to open it with the key 'o' but you'll need to change the Okey config file and permission.json as below:

inside mods/jox.works_Okey/OkeyConfig.json:

 "command": "menu", (~line 29)
 "runAs": "PLAYER", (~line 52)
 

inside permission.json:

{
  "users": {
    "player-uuid": {
      "groups": [
        "Adventure",
        "MenuUsers"
      ]
    }
  },
  "groups": {
    "Default": [],
    "OP": [
      "*"
    ],
    "MenuUsers": [
      "b3cks.hymenu.command.menu"
    ]
  }
}

It goes without saying, the group name can be whatever you want, just make sure it uses the correct hymenu command for players and call it in the user groups.

Alternatively you can use the command "/menu" to open it
 
/menu -> open HyMenu
/hym -> open HyMenu
/hymenu open -> open HyMenu
 
/hym r -> reload HyMenu
/hym reload-> reload HyMenu
/menu r -> reload HyMenu
/menu reload-> reload HyMenu
/hymenu r-> reload HyMenu
/hymenu reload-> reload HyMenu
 

/open pageidwithoutspaces menuname
/open "pageidwithoutspaces" menuname
/open page id with spaces' menuname
/open "page id with spaces" menuname 
 Permission: b3cks.hymenu.command.open
/open "page id" menuname --player=playername  -> opens for the player
-> usable from console but still respects if the player is allowed to open the page
Permission: b3cks.hymenu.command.open.other
/open "page id" --player=playername --ignorePermission=true
-> opens menu for speciified and does not care about permissions
Permission: b3cks.hymenu.command.open.other.bypass
aliases: openpage, opencustom, opencustompage, opensubmenu, hymenupage
if the page id contains spaces always enclose it with " " or ' ' - both work
works with my buttons just like any other command 


If you want to support my work you can buy me a coffee🙂