xPsMenu
The best add-on for protectionstones
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
xPsMenu
🛡️ xPsMenu - Premium ProtectionStones GUI
The most advanced, interactive, and fully customizable GUI menu for ProtectionStones.
[]() [
]() [
]()

---
✨ Features
xPsMenu takes the classic ProtectionStones experience and transforms it into a modern, visual, and premium system for your players.
* 🎨 Developer API: Every single menu, item, lore, and message is fully editable (`gui.yml`, `flags.yml`, `selector.yml`, `config.yml`). * 🌈 Developer API: Full support for modern Hex color codes (`&#FFFFFF`) to make your menus pop out. * 📋 Developer API: A live, auto-updating GUI showing all player regions with an interactive filter (View ALL, OWNERS, or MEMBERS). * 👤 Developer API: View members and owners using real Player Heads! Kick players directly via Shift + Right-Click. * ✨ Developer API: When a protection block is hidden, only the owner will see beautiful magical particles indicating its location (highly optimized, 0 server lag). * 🚀 Developer API: Instantly teleport to your region without the 3-second cooldown using a permission node. * 🛠️ Developer API: Nuke all regions from the server database with a single safety-confirmed command. * 🔌 Developer API: Easily hook into the plugin to open menus from other custom plugins or NPCs.
🎢 Examples:



Do you want to acquire the best ES/EN configuration? - ¡Enter the discord! - It helps us a lot.
---
📥 Installation
1. Stop your server. 2. Download the `xPsMenu-v1.0.0.jar` and place it in your `/plugins/` folder. 3. Ensure you have the required dependencies: * PlaceholderAPI (2.10+) * PlaceholderAPI & PlaceholderAPI * PlaceholderAPI (Optional, but highly recommended) 4. Start the server. 5. Customize the configuration files inside `/plugins/xPsMenu/` and type `/psmenu reload`.
---
⌨️ Commands & Permissions
Player Commands
* `Shift + Right Click` (on a protection block) - Opens the main management GUI for that specific region. * `/psmenu` - Opens the dynamic Region Selector (Shows all your active regions). * `/psmenu help` - Shows the help menu.
Admin Commands
* `/psmenu reload` - Reloads all configuration files seamlessly. * Permission: `psmenu.admin` * `/psmenu clearall confirm` - ⚠️ *DANGER!* Wipes every single ProtectionStones region from the server database. * Permission: `psmenu.admin`
Extra Permissions
* `psmenu.bypass` - Bypasses the 3-second teleportation delay. Instant teleport!
---
📊 Placeholders
Internal Menu Variables
Use these exclusively inside your `gui.yml` and `flags.yml` to display dynamic data: * `%region%` - Displays the ID of the region currently being edited. * `%hidden_status%` - Displays the current state of the block (e.g., Hidden ✘ or Visible ✔ - editable in config). * *Note: You can also use any global PlaceholderAPI variable inside the menus (like `%player_name%`).*
PlaceholderAPI Variables (Global)
You can use these variables anywhere on your server (Scoreboards, Holograms, Chat, etc.): * `%xpsmenu_version%` - Displays the current plugin version. * `%xpsmenu_player%` - Displays the player's name.
---
💻 Developer API
Building a custom core or an NPC script? You can easily hook into xPsMenu to open interfaces for your players using our static API.
Add to your build.gradle:
```gradle dependencies { compileOnly fileTree(dir: 'libs', include: 'xPsMenu-v1.0.0.jar') } Example Usage: Java import jn.willfrydev.xPsMenuAPI; import org.bukkit.entity.Player;
public class MyCustomPlugin {
public void openMenuForPlayer(Player player, String regionId) { // Opens the main Editor GUI for a specific region xPsMenuAPI.openMainMenu(player, "ps10x64y5z"); }
public void openListForPlayer(Player player) { // Opens the Dynamic Region Selector GUI for the player xPsMenuAPI.openSelector(player); } } ```