CustomScreenMenu icon

CustomScreenMenu 1.2.3

An amazing plugin that lets you fully customize the player's screen options menu

Page 1
Content additions and bug fixes

### Changelog – v1.2.3

#### ✅ Fixes
- **Fixed**: Custom-model-data cursors were not loaded after every server restart.

#### 🆕 New Features
1. **Auto-Config Generation**  
   On startup the plugin checks for missing files and automatically creates fresh defaults.

2. **Extended Text Styles**  
   - Added new display modes: text rotation, bottom-to-top flow, and left-right direction.  
   - See the freshly generated `test.yml` for usage examples.

3. **Gamemode Sync**  
   - Switching to the camera view automatically sets the player to **Adventure** mode.  
   - Disconnecting or leaving the view restores **Survival** mode.  
   - Works seamlessly with **ItemsAdder** and **BetterHud** to hide the crosshair.

4. **Player-State Variable**  
   New placeholder: `cursormenu_is_attacking_or_breaking`  
   Returns `true` while the player is attacking an entity or breaking a block, otherwise `false`.

5. **Per-Player Menu Command**  
   New command: `/cursormenu run test <player>`  
   Opens the specified menu for the given player without affecting others.

6. **Granular Permissions**  
   Added to `config.yml`:  
   - Menu-level permission nodes (e.g. `cursormenu.button.test.layout1`).  
   - Individual button permissions within any menu.

Functional and delay resolution
  1. Fixed invalid custom model data in config configuration.
  2. Fix color codes not working
  3. Performance optimizations have minimized cursor latency, and cursor movement is now smoother and smoother
Color code update
  1. You can now use color codes and gradient colors <#d9afd9> to add cool effects to your options!
  2. Added a shadow to the menu display text.
  3. Fixed some minor bugs.
CustomScreenMenu-1.2 API variable updates

New placeholders:
- %cursormenu_current_menu%`– the name of the menu currently open

- %cursormenu_selected_option% – the name of the currently highlighted option

- %cursormenu_display_item_id% – the ID of the item currently shown

- %cursormenu_clicked_option% – the key of the text layout component that was just clicked

- %cursormenu_menu_world% – the world in which the menu is located

- %cursormenu_button_x% – X coordinate of the selected button

- %cursormenu_button_y% – Y coordinate of the selected button

- %cursormenu_button_z% – Z coordinate of the selected button


Add a new folder lang/ inside the plugin’s data directory.

Inside it, place one file per language:

  • lang/en_us.yml – English example
  • lang/ru_ru.yml – Russian example
  • lang/zh_cn.yml – Chinese example

Each file contains the same keys and only the translated strings.
Fix: prevent menu overlap when /cursormenu run is used while already in camera mode.

Patch: in setupCursor, immediately call stopCursor(player, true) if the player is already in cursor mode, before creating new entities.

Page 1