

—
# **DonutBaltop**
### **Fast, Free, and Lightweight**
**The plugin you’ve been waiting for.**
DonutBaltop is a high-performance Minecraft **1.21x** plugin packed with powerful features and optimized for smooth gameplay. It is designed to provide a high-end experience for viewing player balances without bloating your server.
—
## **Showcase**
The plugin features a custom **Baltop GUI** titled “MOST MONEY.”
* **Visual Interface:** Players can see a grid of heads representing the top earners on the server.
* **Navigation:** Includes easy-to-use “Previous” and “Next” page arrows.
* **Information:** Displays specific economy data via interactive icons like emeralds and signs.
## **Fully Configurable**
DonutBaltop is super easy to configure and fully customizable. The configuration file allows you to edit:
* **Item Display Names:** Customize how text appears in the GUI.
* **Lore/Descriptions:** Add custom flavor text or change how currency is displayed.
* **Slot Placement:** Choose exactly where items appear in the menu.
—
## **Plugin Usage**
### **Commands**
* **/baltop** — Opens the balance top GUI.
* **/baltop reload** — Reloads the plugin configuration.
### **Permissions**
* **donutbaltop.use** — Grants access to the /baltop command.
* **donutbaltop.admin** — Access to admin functions and reloading.
### **Dependencies**
To function correctly, this plugin requires:
* **Vault**
* **CoinsEngine**
* **PlayerPoints**
### **Supported Versions**
* **Paper** (and any forks of Paper)
* **Folia**
—
*Spooker Services — One of the best rated services out there.*
A **lightweight**, **modular toolkit** designed for server owners who want essential features — no bloat, just high performance and simplicity.
## Why choose zCore?
– **Lightweight:** Keeps your server running smoothly without slowing it down.
– **Fast:** Made for speed and efficiency.
– **Bloat-free:** Only the features you need, nothing extra.
– **Easy-to-use:** Easy setup and configuration.
– **Customizable** Easy to customize any message.
—
## Commands
| Command | Permission Node | Description |
|—————|——————–|—————————————-|
| `/sethome` | `zCore.setHome` | Allows the player to set homes. |
| `/home` | `zCore.home` | Allows the player to teleport to home. |
| `/setspawn` | `zCore.setSpawn` | Allows the player to set spawn. |
| `/spawn` | `zCore.spawn` | Allows the player to teleport to spawn.|
| `/tpa` | `zCore.tpa` | Allows sending teleport requests. |
| `/tpaccept` | `zCore.tpAccept` | Allows accepting teleport requests. |
| `/tpadeny` | `zCore.tpaDeny` | Allows declining teleport requests. |
| `/announce` | `zCore.announce` | Allows sending announcements in chat. |
| `/rtp` | `zCore.rtp` | Allows teleporting to a random location.|
| `/invsee` | `zCore.invsee` | Allows viewing other players’ inventories.|
| `/endersee` | `zCore.endersee` | Allows viewing other players’ ender chests.|
—
## License
zCore is licensed under the permissive [MPL License](https://github.com/zysws/zCore/blob/master/LICENSE). See the license file for details.
[zChat](https://www.spigotmc.org/resources/zchat.116042/) is a Spigot plugin that is simple to format and manage your chat on your server.
## Features
– Support for all versions from 1.13 to 1.20.6
– Chat Formatting
– PlaceholderAPI Support
– [MiniMessage](https://docs.advntr.dev/minimessage/) support
– Per group format using permissions
## Commands
– /zchat – Manage your zChat plugin.
– /clearchat – Clears the chat.
– /togglechat – Toggle off and on the chat.
– /chatfilter – Manage the chat’s filter.
– /chatcooldown – Set or toggle the cooldown on chat.
## Credits
– [Adventure](https://docs.advntr.dev/) – Minecraft text api
– [Luckperms](https://luckperms.net/) – Minecraft permission plugin
– [PlaceholderAPI](https://placeholderapi.com/) – Minecraft placeholders
ZavShop
## Features
– 🛒 **GUI Shop System** – Beautiful categorized shop with 5 categories (Nether, Gear, Food, End, Misc)
– 🏷️ **Auction House** – Player-driven marketplace with search, filter, and sort options
– 💰 **Sell System** – Quick sell items for configured prices
– 📋 **Tab Completion** – Full auto-completion for all admin commands
– 🔐 **Permission System** – Control access to admin features
– 💾 **YAML Configuration** – Easy editing of items and prices via config files
– 🚫 **Block/Item Blocker** – Prevent placement or usage of specific materials
– ⚡ **Hot Reload** – Reload configurations without server restart
## Installation
1. Download the `zavshop-1.0.jar` file
2. Place it in your `plugins/` folder
3. Make sure you have **Vault** and an economy plugin installed (e.g., EssentialsX)
4. Restart the server
5. The plugin creates `plugins/ZavShop/` with config files
## Commands
### Player Commands
| Command | Description |
|———|————-|
| `/shop` | Opens the main shop GUI |
| `/sell` | Sells the item in hand for configured price |
| `/ah` | Opens the Auction House |
| `/ah sell ` | Lists held item for auction |
### Admin Commands (requires `zavshop.admin`)
| Command | Description |
|———|————-|
| `/shopadd ` | Add an item to shop |
| `/shopremove ` | Remove an item from shop |
| `/shopprice ` | Update item price |
| `/shopreload` | Reload all configuration files |
| `/blocker ban block ` | Ban a block from being placed |
| `/blocker ban item ` | Ban an item from being used |
| `/blocker unban ` | Remove a ban |
| `/blocker list` | Show all banned items |
## Shop Categories
– **Nether Shop** – Blaze Rods, Nether Wart, Glowstone, Magma Cream, etc.
– **Gear Shop** – Obsidian, Totem of Undying, Ender Pearls, Golden Apples
– **Food Shop** – All food items with configurable prices
– **End Shop** – End-related items like Shulker Shells, Dragon Breath
– **Misc Shop** – Custom items added by admins
## Auction House Features
– 🔍 **Search** – Find items by name
– 🎯 **Filter** – Filter by category (Blocks, Tools, Food, Combat, Potions, Books, Ingredients, Utilities)
– 📊 **Sort** – Sort by Newest, Oldest, Price (Low to High), Price (High to Low)
– 👤 **Your Items** – View only your listings
– ✏️ **Manage** – Right-click your listings to remove them
## Permissions
| Permission | Description |
|————|————-|
| `zavshop.admin` | Access to all admin commands
Tutorial:
Zaphkiel-Plus
## Introduction
Zaphkiel is a powerful custom item system for Minecraft servers, providing a complete solution for item creation, management, and interaction.
Through simple YAML configuration files, you can create custom items with complex behaviors, including dynamic display, event response, and data persistence.
### Core Features
– 🎯 **Simple Configuration** – Define items using YAML files
– 🔄 **Dynamic Display** – Item names and descriptions can be updated in real time based on data
– ⚡ **Event-Driven** – Supports multiple interaction events such as right-click, left-click, and attack
– 💾 **Data Persistence** – A complete NBT data management and serialization system
– 🔧 **Highly Extensible** – Rich API interfaces to support plugin integration
– 🌍 **Multi-Language Support** – Automatically detects the player’s client language and provides localized item experiences
## Compatibility
The latest version has been successfully tested in the `Leaf 1.21.4` and `Leaf 1.21.8` environments.
If you encounter compatibility issues, please feel free to submit feedback in [GitHub Issues](https://github.com/iiabc/Zaphkiel-Plus/issues).
**zAnnouncements is a lightweight and easy-to-use plugin that allows server administrators to**
**send beautiful, formatted announcements to all players.**
**Whether you’re managing a small SMP or a large community, this plugin makes global**
**communication simple and stylish.**
## ✨ Features
**Send global announcements with /announce **
**Reload the configuration instantly with /zannouncements reload**
**Supports Legacy Color Codes (&c, &a, etc.) and Hex Colors (<#ff00ff>)**
**Fully customizable main title in the config file**
**Clean and minimal — no unnecessary files or dependencies**
## 🧩 Configuration
**The plugin comes with a short, easy-to-edit config file.**
**You can change the main announcement title, which appears above the message.**
**Config:**
“`
# Config Version 1.0
title: <#ff0000>Example &aSMP # The Announcement Title (Could be Something like “&aAnnouncement”)
“`
## 💬 Commands
/announce → Sends a formatted announcement to all players
/zannounce reload → Reloads the configuration file
## ⚙️ Permissions
zannouncements.use → Allows using /announce
zannouncements.admin → Allows using /zannounce reload
## 🎨 Example Usage
/announce <#00ffff>Server restart in 5 minutes!
→ Displays a bold, colorful announcement visible to all players.
## 🧠 Why Choose zAnnouncements?
**Simple setup, no dependencies**
**Supports both old and modern Minecraft color codes**
**Works perfectly on survival servers, mini-games, or networks**
**Clear, non-intrusive announcements that match your server’s theme**
Zenith-Mod
# Zenith-Mod – Professional Moderation Plugin
Missing something?
Do you miss something in this Plugin? Open a Ticket in our [Discord](https://discord.gg/2a4a3mWR4r) and we’ll implement it very asap!
A comprehensive moderation plugin built for modern Paper servers. Zenith-Mod gives you everything you need to manage your community effectively, with a focus on performance and reliability.
## Core Features
### Complete Moderation Suite
**Ban System** – Full ban management with IP bans, temporary and permanent bans, automatic escalation, and template support. Ban players whether they’re online or offline.
**Mute System** – Chat muting with command blocking support. Works for offline players too, so you can mute someone before they even join. Includes IP-based muting and automatic escalation.
**Warning System** – Track warnings with escalation levels and customizable thresholds. See a player’s warning history at a glance.
**Freeze System** – Freeze players in place with movement restrictions. Perfect for investigations or preventing griefers from escaping.
**Kick System** – Enhanced kick functionality with custom reasons and staff notifications.
**AutoMod** –
The AutoMod system automatically monitors chat and removes messages that violate your server rules — no manual intervention needed.
Word Filter automatically detects and removes messages containing blacklisted words. Thanks to built-in Leetspeak normalization, bypass attempts like 1d10t, i.d.i.o.t or @ssh0le are caught automatically — you only need to add the base word to the list.
AntiSpam detects two types of spam: players sending the same message repeatedly (duplicate detection) and players flooding the chat with too many messages in a short time (flood detection). Both thresholds are fully configurable.
When a message is blocked, the player receives a notification and staff members with the alert permission are instantly notified in-game. Alerts are also sent to a configurable Discord channel as an embed. Staff can toggle their own alerts on/off with /automod alerts.
**Banlist GUI** –
The Banlist GUI gives your staff a clean overview of all bans on your server — both active and inactive — directly in-game via /banlist.
Active bans are displayed in red, expired or already unbanned players in green, making it easy to see the current status at a glance. Each entry shows the player head, ban reason, type (Ban or IP-Ban), remaining duration, the staff member who issued the ban, and the Case ID.
Staff can filter the list to show all bans, active bans only, or inactive bans only. A built-in Case ID search lets you find a specific case instantly by typing the ID in chat. Clicking on an active ban entry unbans the player directly from the GUI.
### Advanced Management Tools
**Vanish System** – Complete invisibility with tab list hiding, god mode, and permission-based visibility. Staff can stay hidden while monitoring the server.
**Alt Detection & Limiting** – Automatically detect alt accounts and limit how many accounts can connect from the same IP address (configurable up to 5 accounts per IP).
**Client Detection** – Detect what client players are using and take action based on that information.
**Chat Freeze** – Temporarily freeze all chat for announcements or emergencies. Useful for server-wide announcements.
**Notes System** – Staff-only notes for players with full history tracking. Keep internal notes that players can’t see.
**History System** – Complete audit trail with case IDs for all moderation actions. Every action is logged and searchable.
### Template & Escalation System
**Pre-configured Templates** – Ready-to-use punishment templates that automatically escalate based on repeat offenses. Set up once and let the system handle repeat offenders.
**Multi-level Escalation** – Automatic duration increases based on how many times a player has been punished. First offense gets a warning, second gets a short ban, third gets longer, and so on.
**IP/UUID Tracking** – Choose whether to track by IP address or UUID per template. Some offenses might need IP tracking, others don’t.
**Custom Reason Suffixes** – Automatically add offense level information to ban reasons. Makes it clear why someone got a longer ban.
**Template Permissions** – Granular permission system so junior staff can only use certain templates.
### Offline Player Support
One of Zenith-Mod’s key features is that you can moderate players even when they’re not currently online. This means you can ban, mute, warn, freeze, or add notes to players who are offline – the action will take effect as soon as they try to join. This is especially useful for handling reports or taking action on players who logged off before you could deal with them.
Note: This refers to players who are currently offline, not offline-mode (cracked) Minecraft servers. The plugin works with standard online-mode authentication.
### API & Integrations
#### Java API System (Beta)
Zenith-Mod includes a comprehensive Java API for developers who want to integrate moderation features into their own plugins.
**Available APIs:**
– **FreezeAPI** – Programmatically freeze and unfreeze players with history tracking
– **ChatFreezeAPI** – Control server chat programmatically
– **EssentialsAPI** – God mode, fly mode, heal, feed, clear inventory, teleport
– **VanishAPI** – Vanish and unvanish players programmatically
– **Event System** – Listen to moderation actions with custom events (Ban, Mute, Warn, Kick events)
All API methods use `CompletableFuture` for non-blocking operations, so they won’t slow down your server. Staff notifications and history logging happen automatically for all API actions.
The Java API is currently in **Beta**. While core plugin functionality is stable, API features may undergo changes in future versions. Use at your own risk.
#### Other Integrations
**Web-API** (Premium) – RESTful API for external integrations and web panels. Token-based authentication with real-time server statistics and license validation for premium features.
**Discord Integration** (Beta) – Use slash commands in Discord to perform moderation actions. Great for remote moderation or integrating with Discord bots.
### Performance Optimized
Everything in Zenith-Mod is built with performance in mind. All operations are fully asynchronous, so nothing blocks the main server thread. We use HikariCP for database connection pooling, which means fast and efficient database operations. Configuration changes can be reloaded without restarting the server, and all database queries are non-blocking.
### Modern Architecture
**Multi-Database Support** – Works with H2 (default), SQLite, MySQL, or MariaDB. Use H2 for single servers, MySQL/MariaDB for multi-server setups.
**Proxy Support** – Full support for Velocity and BungeeCord IP forwarding.
**Modular Configuration** – Each module has its own config file, making it easy to customize what you need.
**Permission-Based** – Comprehensive permission system so you can control who can do what.
**Error Handling** – Robust error handling means the plugin won’t crash your server if something goes wrong.
## Modules
| Module | Description |
|——–|————-|
| **Ban** | Complete ban management with IP bans and escalation |
| **Mute** | Chat muting with command blocking and escalation |
| **Warn** | Warning system with customizable thresholds |
| **Freeze** | Player freezing with restrictions |
| **Kick** | Enhanced kick system |
| **Vanish** | Complete invisibility system |
| **Limiter** | Alt detection and IP limiting |
| **History** | Complete moderation history tracking |
| **Notes** | Staff notes system |
| **Check** | Player information and status checks |
| **Client Detector** | Client type detection |
| **Chat Freeze** | Temporary chat freezing |
| **Essentials** | God mode, fly mode, heal, feed, clear, teleport |
| **Web-API** (Premium) | RESTful API integration |
| **Discord** (Beta) | Discord bot integration |
**What we’re planning:**
– Punish Command – Take moderation actions through a GUI
– VoiceChat Muting – Mute people in voice chat using [Simple Voice Chat](https://modrinth.com/plugin/simple-voice-chat)
## Technical Specifications
### Compatibility
– **Paper 1.21.4+** – Fully tested and supported
– **Paper 1.21.x** – Very likely compatible
– **Paper 1.20.x** – Very likely compatible
– **Paper 1.19.4** – Probably compatible
– **Paper 1.19.x** – May work with minor issues
– **Paper 1.18.x and older** – Not supported
– **Spigot** – Partially supported (some features may not work)
### Requirements
– **Java**: 17 or higher
– **Server**: Paper 1.19.4+ recommended
– **Database**: H2 (default), SQLite, MySQL, or MariaDB
– **Permissions**: LuckPerms or similar (recommended)
### Configuration
– **Hot-Reload**: Use `/zenith reload` to reload all configs without restarting
– **Modular Config**: Each module has its own YAML file in the `modules/` directory
– **Color Support**: Full hex color support and Minecraft color codes
– **Placeholders**: Dynamic placeholders in all messages
## Key Commands
– `/ban ` – Ban a player using a template
– `/mute ` – Mute a player using a template
– `/warn ` – Warn a player using a template
– `/freeze ` – Freeze a player in place
– `/vanish` – Toggle vanish mode
– `/history ` – View a player’s moderation history
– `/notes ` – Manage staff notes for a player
– `/check ` – Check a player’s current status
– `/zenith reload` – Reload all configuration files
– `/zenith help` – Show all available commands
## Staff Features
– Real-time notifications for all moderation events
– Auto-escalation based on repeat offenses
– IP-based tracking to prevent alt account abuse
– Complete audit trail with searchable case IDs
– Offline player moderation support
– Template-only mode for junior staff members
## Performance Highlights
– **Async Operations**: Nothing blocks the server thread
– **Connection Pooling**: HikariCP for optimal database performance
– **Smart Caching**: Frequently accessed data is cached
– **File Rotation**: Automatic log file rotation by date
– **Error Recovery**: Automatic retry for database operations
## Statistics & Tracking
– Player join and leave tracking
– Moderation action counts
– Active ban and mute tracking
– Offense count per template
– Alt account detection
– IP address tracking (with proxy support)
## Customization
– **Messages**: Fully customizable in `messages.yml`
– **Colors**: Hex color support throughout
– **Placeholders**: Dynamic content in all messages
– **Prefix**: Configurable prefix for all messages
– **Duration Format**: Customizable duration display
## Getting Started
1. Download the plugin and place it in your `plugins/` folder
2. Restart your server
3. Configure your database settings in `config.yml`
4. Customize messages in `messages.yml` if needed
5. Configure modules in the `modules/` directory
6. Use `/zenith reload` to apply any configuration changes
## For Plugin Developers
Zenith-Mod provides a comprehensive Java API for plugin integration:
“`java
ZenithAPI api = ZenithAPI.getInstance();
if (api != null && api.isAvailable()) {
// Use FreezeAPI, ChatFreezeAPI, EssentialsAPI, VanishAPI
// Subscribe to events with ZenithEventBus
}
“`
**Full API Documentation**: [http://javadocs.zenith-studios.org/](http://javadocs.zenith-studios.org/)
API Usage Example
“`java
// Subscribe to ban events
ZenithEventBus bus = ZenithEventBus.getInstance();
bus.subscribe(PlayerBanEvent.class, event -> {
getLogger().info(event.getPlayerName() + ” was banned: ” + event.getReason());
});
// Freeze a player via API
FreezeAPI freezeAPI = api.getFreezeAPI();
freezeAPI.freeze(playerUuid, staffUuid, “Investigation”).thenAccept(success -> {
if (success) {
getLogger().info(“Player frozen successfully”);
}
});
“`
## Important Notes
– **Java API**: Currently in **BETA** – API structure may change in future versions
– **Discord Integration**: Currently in BETA – use with caution
– **Premium Features**: Some features require a license
– **Database**: H2 is recommended for single-server setups
– **MySQL/MariaDB**: Recommended for multi-server setups
## Support & Resources
– **Discord**: [Join our Discord](https://discord.gg/2qCMn6KHj4)
– **Premium Modules**: Available on Discord
– **Documentation**: [Zenith-Mod Docs](https://docs.zenith-studios.org/zenith-mod/introduction/)
– **API Documentation**: [Javadocs](http://javadocs.zenith-studios.org/)
– **Support**: Available on Discord
## Why Zenith-Mod?
**Performance First** – Zero thread blocking, fully async operations
**Modern Design** – Built for Paper 1.21.4+ with latest APIs
**Complete Solution** – Everything you need in one plugin
**Developer Friendly** – Comprehensive Java API for integrations
**Scalable** – Works great for small and large servers
**Professional** – Enterprise-grade reliability
**Configurable** – Highly customizable to fit your needs
**Well Documented** – Comprehensive documentation and support
# YuRandomTeleport | Cross-Version · High Performance · Universal Compatibility
**Supported Versions: 1.8.x – 1.26.x**
**Compatible Server Types: Spigot / Paper / All Hybrid Forks (Mohist, Magma, Arclight, etc.)**
—
## 🎉 Promotional Text
### ✦ Escape the Crowd. Explore the Unknown. — YuRandomTeleport
Tired of overcrowded spawn points? Struggling to find untouched, pristine land?
**YuRandomTeleport** is an intelligent random teleportation plugin built for Minecraft servers, delivering a safe, smooth, and highly customizable teleport experience.
#### ✨ Why Choose YuRandomTeleport?
– **Ultimate Cross-Version Compatibility**
From 1.8 to the latest 1.26.x, it runs seamlessly on Spigot, Paper, and all hybrid server forks—one plugin for every version.
– **Smart & Safe Location Algorithm**
Automatically avoids lava, cacti, the void, fire, and other hazardous blocks. Players always land on solid ground with open sky above—safe upon arrival.
– **Granular Per‑World Configuration**
Each world can have independent radius, height limits, safety rules, and blocked material lists. Perfectly tailored for Overworld, Nether, and End dimensions.
– **Seamless Economy & Cooldown Integration**
Supports Vault economy deductions and customizable cooldowns. Granular permission nodes keep everything under control and prevent abuse.
– **Programmable Command Hooks**
Execute custom commands (including JSON titles and particle effects) before and after teleportation, taking your server’s interactivity to the next level.
– **Zero‑Fuss, Out‑of‑the‑Box**
Default configurations work immediately. No complex setup required—even novice server admins can deploy it effortlessly.
– **Active Maintenance & Community**
The plugin is under continuous development. Join our official community **1080918424** to report issues, request features, or just chat with fellow admins.
#### 🚀 Join Us
**Official Community Group: 1080918424**
Bug Reports · Update Announcements · Tech Support · Customization Inquiries
—
## 📖 User Manual
### 1. Installation Guide
1. Place `YuRandomTeleport-.jar` into your server’s `plugins` folder.
2. Restart the server or load the plugin using a plugin manager.
3. The plugin will automatically generate `config.yml` and `messages.yml` inside `plugins/YuRandomTeleport/`.
4. (Optional) Edit the configuration files as desired and apply changes with `/yurtp reload`.
### 2. Commands & Permissions
#### Player Commands
| Command | Description | Permission |
|———|————-|————|
| `/yurtp` or `/rtp` | Randomly teleports yourself within your current world. | `yurtp.use` |
| `/yurtp ` | Randomly teleports the specified player within their current world (requires permission). | `yurtp.teleport.others` |
| `/yurtp ` | Randomly teleports the specified player to the specified world (requires permission). | `yurtp.teleport.others` |
| `/yurtp help` | Displays the help menu. | None |
# Custom commands to execute (supports placeholders: {player}, {x}, {z}, etc.)
commands:
on-teleport:
– “title {player} title {“text”:”Searching for a safe location…”,”color”:”yellow”}”
on-success:
– “title {player} title {“text”:”Teleport Successful!”,”color”:”green”}”
on-fail:
– “title {player} title {“text”:”Teleport Failed”,”color”:”red”}”
“`
#### Notes on `messages.yml`
All frontend messages support color codes (`&` in place of `§`) and can be fully translated or customized. After editing, run `/yurtp reload` to apply changes.
### 4. Frequently Asked Questions
**Q: Why can’t a player teleport?**
A: Verify that the world is not listed in `world-blacklist`, the player has the `yurtp.use` permission, and cooldown/balance requirements are met.
**Q: The teleport locations aren’t ideal. How can I improve them?**
A: Adjust the `radius` range, `height` limits, or relax the `blocked-materials` rules for the specific world. Enable `debug: true` in the config to view detailed location‑search logs in the console.
**Q: Does the plugin support sounds on 1.8?**
A: Yes. A built‑in cross‑version sound compatibility layer ensures sounds work across all supported versions without errors or silence.
**Q: Is Moonrise asynchronous server supported?**
A: Moonrise is not currently supported due to conflicts between its asynchronous architecture and some core plugin logic. We will evaluate potential compatibility in future updates.
– **Documentation & Updates**
The latest version and detailed documentation are always available within the community group.
—
**YuRandomTeleport — Every journey begins with anticipation.**
YuPay
# 🎮 YuPay —— Make Sponsorship Management a Pleasure
> **Minecraft server sponsorship has never been been this elegant.**
>
> Direct integration with WeChat Pay & Alipay, redeem code system, refund review, multi-language, full lifecycle event listening — everything you need, YuPay delivers it all at once. Free, no middlemen, no tricks. 100% of the revenue goes straight to your account. The only fees are those charged by Alipay and WeChat.
—
## 📦 What Is It
**YuPay** is a free, modern payment plugin tailored for Minecraft servers. It breaks down the hassle of “sponsorship management” into four steps: **Initiate → Pay → Receive → Record**. Every step is automated, every step traceable.
Server operators use it to collect sponsorships, players use it to scan and pay. Both sides enjoy a worry-free experience. Supports direct API integration with WeChat Pay and Alipay — no third-party relay, your funds stay secure in your own hands.
> ⚠️ This plugin is designed for scenarios where “players voluntarily sponsor server operations”. Please ensure usage complies with local laws and payment platform regulations.
—
## ✨ Highlights at a Glance
| Category | What You Get |
|———-|—————|
| 💳 **Payment** | WeChat + Alipay dual channels, Native QR scan payment, automatic fallback |
| 💰 **Economy** | Vault + PlayerPoints dual support, one-click switch |
| 🎁 **Rewards** | Base rewards, single milestone, total achievements, limited-time sprints — four trigger layers |
| 🔑 **Redeem Code** | Create/redeem/query/modify, supports paid codes, complete logs |
| 💵 **Refund** | Players can request refunds, admin approve/deny, forced refund, partial refund |
| 📊 **Data** | Leaderboards, order history, page browsing, one-click copy order ID |
| 🌐 **Multi-language** | Default Chinese + English, server owners can customize any language, different players see different languages |
| 🔌 **PAPI** | 40+ placeholders, use in scoreboards/titles/item lore |
| 🛡️ **Security** | Signature verification, IP whitelist, 24h event monitoring, anti-duplicate delivery |
| ⚡ **Performance** | Fully async, HikariCP connection pool, 600% startup speed boost |
| 🧩 **Extensibility** | Full lifecycle event API for deep integration by developers |
—
## 🔄 What a Complete Sponsorship Looks Like
1. Player executes a command, e.g. `/donate 50 wechat`
2. System creates order asynchronously, writes to database
3. Calls WeChat/Alipay API to generate payment QR code
4. Depending on your config, sends **clickable link**, **text-art QR** in chat, or **map QR** in inventory
5. Player scans and completes payment
6. Payment platform calls back to your server
7. Plugin verifies signature, confirms receipt, grants rewards (economy + commands)
8. Leaderboard and placeholders update in real time
9. All logs written, traceable anytime
Fully automated. You just configure the rewards, YuPay handles the rest.
—
## 🎁 Four Reward Layers, Mix and Match
YuPay’s reward system is like a Lego box — four trigger modes you can combine freely.
| Layer | Trigger | Example |
|——-|———|———|
| **Base Reward** | Every successful payment | `give {player} diamond 1` |
| **Single Milestone** | Single payment reaches threshold | 50 yuan → 5 gold blocks |
| **Total Achievement** | Lifetime total reaches new height | 500 yuan → SVIP permission group |
| **Limited Sprint** | Cumulative within specified time period | 200 yuan in 24h → enchanted golden apple |
Each layer’s commands are fully customizable, support variables like `{player}`, `{amount}`, `{points}`, and can integrate with permission/economy plugins like LuckPerms, CMI, etc.
> 💡 Adding `-n` (e.g. `/donate 10 -n`) makes it a **no-reward sponsorship** — pure server support, no rewards triggered.
—
## 🔑 Redeem Code System: More Than Just a Voucher
YuPay’s redeem code module goes far beyond typical “gift codes”:
– **Free codes**: Players enter to claim — great for event giveaways
– **Paid activation codes**: Players must scan and pay a specified amount before redeeming — suitable for selling item entitlements, redeeming codes from other platforms, etc.
– **Economy rewards**: Automatically grant Vault currency or PlayerPoints upon redemption
– **Custom commands**: Each code can bind a set of commands executed on redemption
– **Usage limits & expiry**: Independent control per code
– **Code PAPI**: Placeholders directly read any code’s status, amount, remaining uses
Create a paid activation code with a single command:
“`
/yp code create –code VIP2026 –amount 50 –economy vault –eco-amount 5000 –commands “lp user {player} parent set vip” –max-uses 100 –expire 30d
“`
—
## 💵 Refund System: Bad Debt Terminator
Refunds are no longer a nightmare. YuPay’s refund process is complete and reassuring:
– **Players request refund**: Submit application with reason
– **Admin reviews**: Approve/deny in an orderly manner
– **Forced refund**: Direct operation for urgent cases, no waiting for review
– **Partial refund**: Flexible handling, precise to the cent
– **Code refund**: Refund money and rollback usage count, status automatically restored
– **Refund callback**: Interfaces with WeChat/Alipay official refund API, money returns to original payment method
– **Complete logs**: Who refunded, how much, when, why — all clear
—
## 🌐 Thousand Players, Thousand Languages — No Language Fights
A lifesaver for international server operators.
– Comes with **Simplified Chinese** and **English** complete translations
– Server owners can add any language file in `language.mappings`
– Players switch preference with `/yp lang `, stored in database, persists across sessions
– New players automatically **detect client language** and match the best translation
– Different players on the same server see different language prompts — truly per-player localization
—
## 🔌 Complete PAPI Placeholder List
YuPay provides **40+ built-in PlaceholderAPI placeholders**, covering personal, server, leaderboard, and redeem code dimensions. All monetary values keep two decimal places. Full list below:
—
### 1. Personal Dimension (requires player context)
| Placeholder | Description | Example Return |
|————-|————-|—————-|
| `%yupay_is_banned%` | Whether the player is banned from sponsoring | `true` / `false` |
| `%yupay_total%` | Player’s lifetime total sponsorship (yuan) | `158.00` |
| `%yupay_total_orders%` | Player’s total orders (including failed) | `7` |
| `%yupay_success_orders%` | Player’s successful orders | `5` |
| `%yupay_rank%` | Player’s sponsorship rank (off-rank shows text from language file) | `3` or `Not ranked` |
| `%yupay_has_paid_in_
> 💡 **Dynamic parameters**: `` is in **milliseconds** (e.g. `86400000` = 24h), `` is monetary threshold (yuan). All monetary placeholders retain two decimals.
—
### 2. Server Dimension (no player needed)
| Placeholder | Description | Example Return |
|————-|————-|—————-|
| `%yupay_server_total%` | Server’s lifetime total sponsorship (yuan) | `12850.75` |
| `%yupay_server_total_orders%` | Server’s total orders (including failed) | `312` |
| `%yupay_server_success_orders%` | Server’s successful orders | `289` |
| `%yupay_server_orders_in_%` | Server orders in last `` ms | `45` |
| `%yupay_server_success_orders_in_%` | Server successful orders in last `` ms | `42` |
| `%yupay_server_amount_in_%` | Server total sponsorship in last `` ms (yuan) | `3200.00` |
—
### 3. Leaderboard Dimension (no player needed)
Two formats supported (first recommended):
| Placeholder | Description | Example Return |
|————-|————-|—————-|
| `%yupay_top__name%` | Player name at rank N | `Steve` |
| `%yupay_top__amount%` | Total sponsorship at rank N (yuan) | `2000.00` |
| `%yupay_top_name%` | (legacy format) Same as above | `Alex` |
| `%yupay_top_amount%` | (legacy format) Same as above | `1500.00` |
> `` ranges `1` ~ `10`. If rank doesn’t exist, name returns fallback text from language file (default “None”), amount returns `0.00`.
—
### 4. Redeem Code Dimension
Includes global statistics (no player needed) and specific code attributes (where `redeemed` and `can_redeem` require player context).
#### Global Statistics
| Placeholder | Description | Example Return |
|————-|————-|—————-|
| `%yupay_code_total%` | Total number of codes | `25` |
| `%yupay_code_active%` | Number of active codes (status ACTIVE) | `18` |
#### Specific Code Attributes — replace `` with actual code string (auto-uppercase)
| Placeholder | Description | Example (code = `VIP2026`) |
|-------------|-------------|----------------------------|
| `%yupay_code__status%` | Current status of the code | `ACTIVE` |
| `%yupay_code__amount%` | Required payment amount (yuan) | `50.00` |
| `%yupay_code__economy_type%` | Economy reward type | `vault` |
| `%yupay_code__economy_amount%` | Economy reward amount | `5000.00` |
| `%yupay_code__used%` | Number of times redeemed | `23` |
| `%yupay_code__max_uses%` | Max redeem count (-1 = unlimited) | `100` |
| `%yupay_code__expire%` | Expiry timestamp (ms), -1 = never | `1798675199999` |
| `%yupay_code__expire_formatted%` | Formatted expiry time | `2026-12-31 23:59` |
| `%yupay_code__remark%` | Code remark | `"VIP activation code"` |
| `%yupay_code__locked%` | Whether locked by a payment (someone is paying) | `true` / `false` |
| `%yupay_code__redeemed%` | Whether **current player** has redeemed this code | `true` / `false` |
| `%yupay_code__can_redeem%` | Whether **current player** can redeem now (comprehensive check) | `true` / `false` |
> 💡 `_can_redeem` checks: code status normal, not expired, uses left, not locked by others, and current player hasn't redeemed it.
---
### Usage Notes
- **All monetary placeholders** are in `yuan`, with two decimal places, e.g. `99.50`. Integer amounts also show `.00`.
- Dynamic time parameter `` always uses **milliseconds** — 24h = `86400000`, 7d = `604800000`.
- Code strings in placeholders are auto-uppercased; lowercase input works too.
- Server and leaderboard placeholders **do not require a player context**; personal and some code placeholders **require a player** or return empty/default.
- Placeholders work in any plugin that supports PlaceholderAPI (scoreboard, BossBar, DeluxeTags, chat prefix, item lore, etc.).
---
## 🧩 Gift for Developers
If you can write plugins, these events will make your secondary development experience fly:
All events support sync. You can intercept before order creation, trigger联动 other systems after payment, sync data on refund — every detail of the sponsorship lifecycle is observable.
---
## 🛡️ Security Is Not Just Talk
- **Signature verification**: WeChat/Alipay callbacks are fully signature-verified against forgery
- **Anti-duplicate delivery**: Order status check + idempotent handling
- **IP whitelist**: Callback interface can restrict access to official payment platform IPs only
- **TLS/HTTPS**: Supports certificate-encrypted communication
- **Event monitoring**: `/yp audit` one-click audit, 24h monitoring of which plugins are listening to YuPay's fund events
- **Map virtual lock**: When a payment QR is placed in the inventory, the player is locked in place, cannot drop/switch items, payment unlocks
---
## ⚡ Blazing Fast Startup
The rewritten dependency loading system means YuPay no longer requires cumbersome JVM startup parameters. All dependencies are automatically managed, verification speed increased by 600%, out-of-the-box. Drop it into the `plugins` folder, start the server, it's ready.
---
## 📊 Data at Your Fingertips
`/yp history` is one of your most-used commands. Order history supports **page browsing**, click an order ID to **copy it with one click** — reconciliation efficiency doubled.
`/yp top` lets you know at any time who is contributing to the server — leaderboard data syncs with placeholders in real time.
`/yp total` for personal stats, `/yp total all` for server-wide stats — all available at your fingertips.
---
## 🚀 Two-Minute Quick Start Guide
1. Drop `YuPay.jar` into the `plugins/` folder
2. Start the server, wait for `config.yml` and `messages.yml` to generate
3. Open `config.yml`, fill in your WeChat/Alipay parameters
4. Ensure the callback port (default `8080`) is open in your server firewall and security group
5. In-game, type `/donate 0.01` to test a small payment
6. Confirm callback works and rewards arrive — start business 🎉
---
## 🏆 Why Server Owners Are Using YuPay
- ✅ **Stable**: Production-tested, compatible with Spigot/Paper 1.8 to latest versions
- ✅ **Reliable**: Direct official API connection, no middlemen, money goes to your account directly
- ✅ **Worry-free**: From payment to rewards fully automated, you just configure
- ✅ **Flexible**: Reward logic fully programmable, command aliases freely definable
- ✅ **Secure**: Signature verification + anti-duplicate + IP whitelist + event monitoring
- ✅ **Transparent**: Every order, every refund, every code redemption has logs
- ✅ **Evolving**: Actively maintained, continuously iterated, community-driven
---
> 💬 **Plugin Discussion Group: 1080918424**
>
> For issues, feature requests, or just to chat — welcome. Every improvement of YuPay comes from feedback from server owners.
> 💛 **Support the Author on AiFaDian**: https://ifdian.net/item/012b6c1c4a0911f18d1b52540025c377
>
> If YuPay has helped your server, consider buying the author a milk tea ~ Your support is the biggest motivation for the plugin's continued evolution.
**Stop struggling with sponsorship management. Leave the professional stuff to YuPay, and focus on running your server well.**
> 🎉 **Good news**: You no longer need to manually add JVM startup parameters for Java 9+. YuPay's latest version has built-in smart dependency management — out-of-the-box.
## 2. Installation & Startup
1. Download `YuPay.jar`, place it in the server's `plugins/` directory
2. Start the server, the plugin will automatically generate `config.yml`, `messages.yml`, and SQLite database files
3. Edit `plugins/YuPay/config.yml`, fill in payment channel configuration parameters
4. Depending on your payment method, configure callback URLs in the payment platform backend:
- WeChat: `http(s)://your-domain-or-ip:port/pay/wechat/notify`
- Alipay: `http(s)://your-domain-or-ip:port/pay/alipay/notify`
5. Ensure the callback port (default `8080`) is open in firewall and security group
6. Execute `/yupay reload` or type `reload` in console to apply configuration
7. In-game, type `/donate 0.01` to test a small payment
## 3. Configuration Quick Reference
### 3.1 Core Payment Parameters
| Path | Description | Example |
|------|-------------|---------|
| `pay.default-method` | Default payment method | `wechat` / `alipay` |
| `pay.min-amount` | Minimum amount per order (yuan) | `0.01` |
| `pay.max-amount` | Maximum amount per order (-1 = unlimited) | `500` |
| `pay.max-daily-amount` | Daily cumulative limit (-1 = unlimited) | `1000` |
| `pay.order-subject` | Order subject template | `Sponsorship-{player}-{amount}yuan` |
### 3.2 WeChat Pay Parameters
| Path | Description |
|------|-------------|
| `wechat.enabled` | Enable (true/false) |
| `wechat.mchid` | Merchant ID |
| `wechat.appid` | Official account / Mini Program AppID |
| `wechat.serial-no` | API certificate serial number |
| `wechat.private-key-path` | Merchant private key (relative to `pems/` directory) |
| `wechat.public-key-path` | Platform public key (relative to `pems/` directory) |
| `wechat.public-key-id` | Platform public key ID |
| `wechat.api-v3-key` | API v3 key (32 characters) |
| `wechat.notify-url` | Complete callback notification URL |
Triggered when cumulative amount within a specified time period (milliseconds) reaches the target. Great for holiday events, weekend leaderboard pushes, etc.
1. Player or admin submits refund request: `/yp refund request [amount]`
2. Admin views pending list: `/yp refund pending`
3. Approve or reject: `/yp refund approve ` / `reject`
4. Upon approval, actual refund automatically executes; upon rejection, requester is notified
### 7.3 What Happens After Refund
- Payment platform (WeChat/Alipay) receives refund request, money returns to original payment method
- Plugin updates order refund status (`FULL_REFUND` / `PARTIAL_REFUND`)
- If code refund: code usage count -1, status restored to `ACTIVE`
- Executes commands configured in `commands.on-refund`
- Triggers `RefundCompletedEvent` for other plugins to react
- Complete refund logs written to database
## 8. Multi-Language System
### 8.1 Adding a Language
Add under `language.mappings` node in `config.yml`:
Then create `plugins/YuPay/messages_ja.yml`, translating based on `messages.yml`. Plugin will automatically fill in missing keys.
### 8.2 Switching Language
- Players switch manually: `/yp lang en` (supports aliases, e.g. `english`)
- First join auto-detects client language and matches best translation
- Language preference stored in database, remembered across sessions
## 9. Database Selection Guide
| Server Scale | Recommended Type | Reason |
|--------------|------------------|--------|
| Single small server | SQLite | Zero configuration, out-of-the-box |
| Multi-server network | MySQL | Unified data, cross-server sync |
| Large network | MySQL + connection pool | High concurrency support, connection reuse |
## 10. Troubleshooting Common Issues
### Callback server fails to start
- Check if port is occupied
- Confirm firewall/security group has opened the port
- Check console error logs
### Payment successful but rewards not received
- Check order `status` in database — should be `SUCCESS`
- Confirm `economy.enabled` and `commands.enabled` are both `true`
- Check console for economy plugin load errors
### Map QR code not showing
- Confirm ProtocolLib matching server version is installed
- Check if `qrcode.default-output-mode` is set to `map`
- If ProtocolLib missing, mode auto-falls back to `link`
### WeChat Pay says public key file not found
- Check existence of `plugins/YuPay/pems/` directory
- Confirm `wechat.public-key-path` is correct
- Go to WeChat Merchant Platform → API Security → API Certificates → download platform certificate
### Configuration lost after plugin upgrade
- YuPay has built-in smart config upgrader — automatically backs up old file (`.bak` suffix) and merges new keys
- Manual backup before upgrade for extra peace of mind
## 11. Database Tables
| Table Name | Stored Content |
|------------|----------------|
| `yu_payments` | All payment orders, including refund status |
| `yu_total_levels` | Cumulative reward tier records |
| `yu_banned_players` | Sponsorship blacklist |
| `yu_player_lang` | Player language preferences |
| `yu_redeem_codes` | Redeem code master table |
| `yu_redeem_logs` | Redemption records |
| `yu_refund_logs` | Refund operation logs |
| `yu_refund_requests` | Refund review requests |
## 12. Uninstallation Steps
1. Execute `/yp reload` (ensure in-memory config is flushed)
2. Stop the server
3. Delete `plugins/YuPay.jar`
4. For complete removal, delete `plugins/YuPay` folder (including database)
---
> 💬 Plugin Discussion Group: **1080918424**
> Don't struggle alone — bring your logs and config screenshots to the group, the author and helpful server owners are there.
> 💛 **Support the Author on AiFaDian**: https://ifdian.net/item/012b6c1c4a0911f18d1b52540025c377
>
> If YuPay has helped your server, consider buying the author a milk tea ~ Your support is the biggest motivation for the plugin's continued evolution.
```
YuIllustration
# Intro
> Simple and convenient illustration system
It allows you to create illustrations for you server. It supports **multi-categories**, **multi-unlock conditions**, **multi-reward types**, and **multi-plugin supports**.
# Features
– Support MySQL and SQLite dual storage methods
– **Customizable** compendium categories, allowing the creation of countless categories.
– **Customizable** GUI styles and buttons, what you see is what you get!
– **In-game GUI editor**, from creating categories to setting unlock conditions, everything can be done within the game. The GUI offers **multilingual support**, eliminating the need for kernel translation
– **Multiple unlock conditions**: unlock by picking up items, killing a sufficient number of monsters, custom event unlocks, and simultaneous item pickups and monster kills and so on…
– **Customizable rewards** after unlocking: supprot for Kether scripts, attribute from various attribute plugins
– Support for multiple inline variables and PAPI variables
# Supported Plugins
– **MMOCore**: Gives players attribute points as rewards
– **FancyWaystone**: Unlocking the compendium after activating a waystone
– **MythicLib/MMOItems**: Gives players attribute points as rewards
– **Typewriter**: An `YuIllustration Adapter` for Typewriter, add some event for Typewriter
– Future support planned for: **ItemsAdder**, **Oraxen**, **WorldGuard**, **AttributePlus**, **OriginAttribute**, **SX-Attribute**
# More information
– [Wiki](https://l1-an.github.io/YusDoc/en/docs/MinecraftPlugins/YuIllustration/intro)
– [Discord](https://discord.gg/SzPBHGttaR)
– [Update logs](https://l1-an.github.io/YusDoc/en/docs/MinecraftPlugins/YuIllustration/update)