promotional bannermobile promotional banner

UltimateRanks

All in one ranks plugin with custom rank making chat chat and nametag rank integration and ranks manager for players and so on .......
img73.png

img73.png

img97.png

img97.png

img47.png

img47.png

img75.png

img75.png

image265.png

image265.png

Description

** 🎖️ UltimateRanks - Complete Documentation

 Overview

 Description

**UltimateRanks** is a next-generation rank management plugin for Minecraft servers running Paper 1.21+. Unlike traditional rank plugins that limit players to a single rank, UltimateRanks introduces a revolutionary **hybrid system** where players can **own multiple ranks simultaneously** while selecting which one to **display actively** in chat and tab lists.

Built with modern Java 21 features and the Paper API, UltimateRanks delivers exceptional performance through asynchronous database operations, intelligent caching, and a beautiful GUI-based rank management interface.

 Why Choose UltimateRanks?

| Feature | Traditional Plugins | UltimateRanks |
|---------|-------------------|---------------|
| Multiple Ranks | ❌ One rank only | ✅ Unlimited ranks |
| Permission Stacking | ❌ Single rank perms | ✅ All owned ranks contribute |
| Visual Customization | ❌ Fixed display | ✅ Choose active display rank |
| GUI Management | ⚠️ Basic or none | ✅ Beautiful paginated GUI |
| RGB Colors | ⚠️ Limited support | ✅ Full MiniMessage support |
| Performance | ⚠️ Sync operations | ✅ 100% async database |
| LuckPerms Sync | ⚠️ Replace or conflict | ✅ Seamless integration |

 Target Audience

- **Network Servers**: Manage complex rank hierarchies (VIP + Builder + Staff)
- **RPG Servers**: Class ranks + achievement ranks + donor ranks
- **Creative Servers**: Builder roles + theme ranks + VIP tiers
- **Survival Servers**: Progression ranks + donor perks + special events
- **Prison Servers**: Mine ranks + prestige + VIP packages

---

 Features

 🎯 Core Features

 1. **Multi-Rank Ownership System**
- Players can own **unlimited ranks** simultaneously
- Own VIP + Builder + Helper at the same time
- All ranks contribute permissions (additive system)
- Zero conflicts between rank permissions

```
Example:
  Player owns: [Member, VIP, Builder]
  Permissions = Member + VIP + Builder (combined)
  Active Display = VIP (shown in chat)
```

 2. **Active Display Rank Selection**
- Choose which rank appears in chat prefix/suffix
- Switch between owned ranks via interactive GUI
- Real-time updates without reconnecting
- Maintains all permissions from other ranks

 3. **Beautiful Paginated GUI**
- Clean, intuitive rank selection menu
- Visual states: **Active** (glowing), **Owned** (available), **Locked** (unavailable)
- 28 ranks per page with smooth navigation
- Expiration timers shown directly in GUI
- Custom icons with resource pack support

 4. **Advanced Permission System**
- **Dual Mode Operation**:
  - **Standalone Mode**: Built-in Bukkit permission system
  - **LuckPerms Mode**: Full integration with LuckPerms API
- Auto-detection of available systems
- Permission aggregation from all owned ranks
- Wildcard support (e.g., `essentials.*`)
- Negation support (e.g., `-essentials.fly`)

 5. **Expiration & Time Management**
- Temporary ranks with automatic expiration
- Flexible duration formats: `30d`, `7d`, `1w`, `1mo`, `1y`, `permanent`
- Automatic cleanup of expired ranks
- Warning notifications before expiration
- Visual countdown in GUI

 6. **Full MiniMessage Support**
- RGB colors: `<FF5555>text</color>`
- Gradients: `<gradient:gold:yellow>VIP</gradient>`
- Formatting: `<bold>`, `<italic>`, `<underline>`
- Hover events and click actions
- Legacy color code conversion

 7. **High-Performance Database**
- **SQLite**: Zero-config, perfect for small servers
- **MySQL**: HikariCP pooling for large networks
- 100% asynchronous operations (zero server lag)
- Transaction support for data integrity
- Automatic schema management

 8. **Smart Caching System**
- In-memory cache for online players
- Sub-millisecond lookup times
- Automatic cache invalidation
- Thread-safe concurrent operations

---

 🎨 Visual Features

 Chat Formatting
```
Before:
  <Player> Hello!

After:
  [VIP] Player ★: Hello!
  
Format:
  {prefix} + {player} + {suffix} + : + {message}
```

 GUI States

| State | Visual | Description |
|-------|--------|-------------|
| **Active** | 🌟 Glowing item | Currently equipped rank |
| **Owned** | ✅ Normal icon | Click to equip |
| **Locked** | 🚫 Barrier | Not owned |

 Rank Display Example
```
╔══════════════════════════════╗
║        My Ranks              ║
╠══════════════════════════════╣
║                              ║
║  [🌟 VIP] (Active)           ║
║  Click to keep equipped      ║
║  Duration: Permanent         ║
║                              ║
║  [✅ Builder]                ║
║  Click to equip              ║
║  Expires in: 15 days         ║
║                              ║
║  [🚫 MVP] (Locked)           ║
║  You don't own this rank     ║
║                              ║
╚══════════════════════════════╝
```

---

 🔧 Technical Features

 Architecture
- **SOLID Principles**: Single Responsibility, Interface Segregation
- **Design Patterns**: Strategy, Builder, Repository, Singleton
- **Dependency Injection**: Clean, testable code
- **Layer Separation**: Model, Manager, Database, GUI, Commands

 Performance Metrics
```
Database Operations:
  ✅ Load Player Data: ~5ms (SQLite), ~3ms (MySQL)
  ✅ Save Player Data: ~8ms (SQLite), ~4ms (MySQL)
  ✅ Rank Switch: ~2ms (cache hit)

Memory Usage:
  ✅ Base Plugin: ~5MB
  ✅ Per Player (cached): ~2KB
  ✅ GUI Open: +8KB

Scalability:
  ✅ 1,000+ concurrent players supported
  ✅ 100+ ranks tested
  ✅ Zero tick lag (100% async)
```

 Thread Safety
- Concurrent hash maps for player cache
- CompletableFuture for async operations
- Synchronized database transactions
- No race conditions in rank switching

---

 🔌 Integration Features

 LuckPerms Integration
- **Auto-Sync**: UltimateRanks ⟷ LuckPerms groups
- **Fallback Support**: Works with or without LuckPerms
- **Group Creation**: Auto-create missing LuckPerms groups
- **Permission Inheritance**: Respects LuckPerms hierarchy

 PlaceholderAPI Support
```
Available Placeholders:
  %ultimateranks_prefix%           → Active rank prefix
  %ultimateranks_suffix%           → Active rank suffix
  %ultimateranks_rank_displayname% → Rank display name
  %ultimateranks_rank_id%          → Rank ID
  %ultimateranks_rank_weight%      → Rank weight
  %ultimateranks_total_ranks%      → Total owned ranks
```

 Chat Plugin Compatibility
- ✅ EssentialsX Chat
- ✅ ChatControl
- ✅ VentureChat
- ✅ Any plugin using PlaceholderAPI

---

 Installation

 Requirements
- **Minecraft Server**: Paper 1.21+ (or Purpur/Pufferfish)
- **Java Version**: Java 21+
- **Optional Dependencies**:
  - LuckPerms 5.4+ (for advanced permissions)
  - PlaceholderAPI 2.11+ (for placeholders)

 Quick Install

1. **Download**
   ```
   Download UltimateRanks-1.0.0.jar from releases
   ```

2. **Install**
   ```bash
    Place in plugins folder
   cp UltimateRanks-1.0.0.jar /path/to/server/plugins/
   ```

3. **First Start**
   ```bash
    Start server to generate configs
   java -jar paper.jar
   
    Wait for: "[UltimateRanks] ✓ UltimateRanks enabled successfully"
   
    Stop server
   stop
   ```

4. **Configure**
   ```bash
    Edit generated configs
   nano plugins/UltimateRanks/config.yml
   nano plugins/UltimateRanks/ranks.yml
   ```

5. **Restart**
   ```bash
    Start server again
   java -jar paper.jar
   ```

 Verification

```
Console Output (Success):
  [UltimateRanks] ═══════════════════════════════
  [UltimateRanks] UltimateRanks v1.0.0
  [UltimateRanks] Advanced Rank Management
  [UltimateRanks] ═══════════════════════════════
  [UltimateRanks] Loading configuration files...
  [UltimateRanks] ✓ Configuration loaded
  [UltimateRanks] Connecting to database...
  [UltimateRanks] ✓ Database connected (SQLite)
  [UltimateRanks] Initializing managers...
  [UltimateRanks] ✓ Loaded 10 ranks
  [UltimateRanks] ✓ Managers initialized
  [UltimateRanks] Initializing permission system...
  [UltimateRanks] ✓ LuckPerms detected - Using LuckPerms handler
  [UltimateRanks] Registering event listeners...
  [UltimateRanks] ✓ Event listeners registered
  [UltimateRanks] Registering commands...
  [UltimateRanks] ✓ Commands registered
  [UltimateRanks] ✓ PlaceholderAPI integration enabled
  [UltimateRanks] ✓ UltimateRanks enabled successfully in 245ms
  [UltimateRanks] ✓ Permission Mode: LuckPerms
```

---

 Configuration

 Main Configuration (config.yml)

```yaml
 Database Selection
database:
  type: sqlite   Options: sqlite, mysql

 GUI Customization
gui:
  menu-title: '<gradient:gold:yellow>My Ranks</gradient>'
  items-per-page: 28
  refresh-interval: 100   ticks

 Chat Formatting
chat:
  enabled: true
  format: '{prefix}{player}{suffix}: {message}'
  allow-colors: true

 Expiration Management
expiration:
  auto-cleanup: true
  cleanup-interval: 30   minutes
  notify-on-expiration: true
  warn-before-expiration: 24   hours

 Permission System
permissions:
  mode: auto   Options: auto, standalone, luckperms
  apply-on-join: true
  refresh-on-change: true
```

 Rank Definitions (ranks.yml)

```yaml
ranks:
  vip:
    weight: 10                               Hierarchy (higher = better)
    display_name: '<gold>VIP</gold>'         Shown in GUI/messages
    prefix: '<gradient:yellow:gold>[VIP]</gradient> '
    suffix: ''
    gui_icon: GOLD_INGOT                     Item in GUI
    custom_model_data: 0                     Resource pack support
    permissions:
      - 'essentials.fly'
      - 'essentials.heal'
      - 'ultimateranks.chat.color'
```

 MySQL Configuration

```yaml
database:
  type: mysql
  mysql:
    host: localhost
    port: 3306
    database: ultimateranks
    username: root
    password: 'your_password'
    pool-size: 10
    parameters: '?useSSL=false&autoReconnect=true'
```

🎨 Creating Ranks from Scratch - Complete Guide

📝 Quick Overview

**Where to create ranks:** `plugins/UltimateRanks/ranks.yml`

**Process:**
1. Define rank structure
2. Set weight (hierarchy)
3. Choose colors/prefix
4. Add permissions
5. Pick GUI icon
6. Reload plugin


 🚀 Step-by-Step Tutorial

 Step 1: Open ranks.yml

```bash
 Navigate to your server folder
cd plugins/UltimateRanks/

 Edit ranks.yml
nano ranks.yml
 or use Notepad++/VSCode
```

 Step 2: Basic Rank Structure

```yaml
ranks:
  your_rank_name:           Unique identifier (lowercase, no spaces)
    weight: 10              Number (higher = more important)
    display_name: '<gold>Display Name</gold>'  What players see
    prefix: '<gold>[Prefix]</gold> '            Chat prefix
    suffix: ''              Chat suffix (optional)
    gui_icon: GOLD_INGOT    Item shown in menu
    custom_model_data: 0    For resource packs (0 = disabled)
    permissions:            List of permissions this rank gives
      - 'permission.node.1'
      - 'permission.node.2'
```

 💡 Example: Creating Your First Rank

Let's create a **"Supporter"** rank from scratch:

```yaml
ranks:
  supporter:
    weight: 5                                     Low tier (above default)
    display_name: '<gradient:green:lime>Supporter</gradient>'
    prefix: '<gradient:green:lime>[Supporter]</gradient> '
    suffix: ' <green>♥</green>'
    gui_icon: EMERALD                             Green emerald item
    custom_model_data: 0
    permissions:
      - 'essentials.spawn'                       Basic teleport
      - 'essentials.sethome'                      Set homes
      - 'essentials.home'                         Teleport home
      - 'essentials.back'                         Return to death point
```

**Save the file**, then in-game:
```
/rank reload
/rank grant YourName supporter
```


---

 Commands & Permissions

 Commands

| Command | Description | Permission | Usage Example |
|---------|-------------|------------|---------------|
| `/rank menu` | Open rank GUI | `ultimateranks.menu` | `/rank menu` |
| `/rank set <player> <rank>` | Set main rank | `ultimateranks.admin.set` | `/rank set Steve vip` |
| `/rank grant <player> <rank> [time]` | Add rank | `ultimateranks.admin.grant` | `/rank grant Steve builder 30d` |
| `/rank remove <player> <rank>` | Remove rank | `ultimateranks.admin.remove` | `/rank remove Steve vip` |
| `/rank reload` | Reload configs | `ultimateranks.admin.reload` | `/rank reload` |

 Command Aliases
```
/rank    → /ranks, /ur
menu     → gui, open
remove   → take, revoke
reload   → rl
```

 Permissions Hierarchy

```
ultimateranks.*                    (All permissions)
├── ultimateranks.use             (Basic access)
├── ultimateranks.menu            (GUI access)
└── ultimateranks.admin.*         (Admin commands)
    ├── ultimateranks.admin.set
    ├── ultimateranks.admin.grant
    ├── ultimateranks.admin.remove
    └── ultimateranks.admin.reload
```

 Special Permissions

| Permission | Description | Default |
|------------|-------------|---------|
| `ultimateranks.chat.color` | Use color codes in chat | false |
| `ultimateranks.bypass.expiration` | Ranks never expire | op |
| `ultimateranks.notify.expiration` | Get expiration warnings | true |

---

 Usage Guide

 For Players

 Opening the Rank Menu
```
1. Type: /rank menu
2. GUI opens showing all available ranks
3. Click any owned rank to equip it
4. Your chat prefix updates immediately
```

 Understanding Rank States
```
🌟 Glowing Item = Currently Active
   → This is your display rank
   → Shown in chat and tab list

✅ Normal Item = Owned but Not Active
   → Click to switch to this rank
   → You still have its permissions

🚫 Barrier = Locked
   → You don't own this rank
   → Ask staff to grant it
```

 Checking Expiration
```
Open /rank menu and hover over any owned rank:
  
  [VIP]
  ✅ Click to Equip
  
  Duration: 25 days, 14 hours
  Weight: 10
```

 For Administrators

 Setting Up Ranks

**1. Define Rank in ranks.yml**
```yaml
ranks:
  premium:
    weight: 20
    display_name: '<gradient:aqua:blue>Premium</gradient>'
    prefix: '<gradient:aqua:blue>[Premium]</gradient> '
    suffix: ' <aqua>★</aqua>'
    gui_icon: DIAMOND
    permissions:
      - 'essentials.*'
      - 'worldedit.selection.*'
```

**2. Reload Configuration**
```bash
/rank reload
```

**3. Grant to Players**
```bash
 Permanent rank
/rank grant PlayerName premium

 30-day rank
/rank grant PlayerName premium 30d

 1 week rank
/rank grant PlayerName premium 1w
```

 Managing Player Ranks

**View Player's Ranks**
```bash
 Players can see their own via /rank menu
 Admins use database or cache inspection
```

**Reset Player Ranks**
```bash
 Remove all ranks and set default
/rank set PlayerName default
```

**Temporary VIP Promotion**
```bash
 Grant VIP for 7 days
/rank grant PlayerName vip 7d

 Player gets notified 24 hours before expiration
 Rank auto-removes after 7 days
```

**Multi-Rank Assignment**
```bash
 Player can be VIP + Builder + Helper simultaneously
/rank grant PlayerName vip
/rank grant PlayerName builder
/rank grant PlayerName helper

 All three ranks grant permissions
 Player chooses which shows in chat via GUI
```

 Common Workflows

**New Player Setup**
```bash
 1. Player joins → automatically gets "default" rank
 2. Player donates → grant VIP
/rank grant PlayerName vip

 3. Player applies for builder → grant builder
/rank grant PlayerName builder

 Player now has: default + vip + builder (all permissions)
 Player chooses "vip" or "builder" for chat display
```

**Staff Promotion**
```bash
 Promote to Helper (keep VIP)
/rank grant PlayerName helper

 Player retains VIP perks + gets staff permissions
 Can switch between [VIP] and [Helper] prefix in GUI
```

**Seasonal Events**
```bash
 Halloween Event - 30 days
/rank grant * halloween 30d

 All online players get halloween rank
 Auto-expires after event
```

 Placeholders

 PlaceholderAPI Integration

All placeholders work with any plugin supporting PlaceholderAPI (DeluxeChat, FeatherBoard, etc.)

| Placeholder | Output | Example |
|-------------|--------|---------|
| `%ultimateranks_prefix%` | Active rank prefix | `[VIP] ` |
| `%ultimateranks_suffix%` | Active rank suffix | ` ★` |
| `%ultimateranks_rank_displayname%` | Rank display name | `VIP` |
| `%ultimateranks_rank_id%` | Rank identifier | `vip` |
| `%ultimateranks_rank_weight%` | Rank weight | `10` |
| `%ultimateranks_total_ranks%` | Total owned ranks | `3` |

 Usage Examples

**DeluxeChat Format**
```yaml
formats:
  default:
    format: '%ultimateranks_prefix%%player_name%%ultimateranks_suffix%: %message%'
     Output: [VIP] Steve ★: Hello!
```

**Tab List (TAB Plugin)**
```yaml
header: |
  &6Server Name
  &e%ultimateranks_prefix%%player_name%
```

**Scoreboard (FeatherBoard)**
```yaml
board:
  title: '&6&lServer'
  lines:
    - '&7Rank: %ultimateranks_rank_displayname%'
    - '&7Weight: %ultimateranks_rank_weight%'
    - '&7Total Ranks: %ultimateranks_total_ranks%'
```

**Signs**
```
[Shop]
VIP Only
%ultimateranks_rank_displayname%
Required
```

---

 FAQ

 General Questions

**Q: What makes UltimateRanks different from other rank plugins?**
> A: UltimateRanks allows players to **own multiple ranks simultaneously** while choosing which one displays in chat. Traditional plugins force "one rank only" - we give **all permissions from all ranks** while letting players customize their appearance.

**Q: Does this replace LuckPerms?**
> A: No! UltimateRanks **integrates with** LuckPerms. Use LuckPerms for your complex permission setups, and UltimateRanks for visual rank management and the GUI system. They work together seamlessly.

**Q: Can I use this without LuckPerms?**
> A: Yes! UltimateRanks has a built-in permission system (Standalone Mode) that works without any dependencies.

**Q: Is this compatible with my current ranks?**
> A: If you're using LuckPerms, UltimateRanks can sync with your existing groups. You'll need to create matching rank definitions in `ranks.yml`.

 Technical Questions

**Q: Does this cause server lag?**
> A: No. All database operations are **100% asynchronous**. There's zero server tick lag from UltimateRanks.

**Q: How many players can this support?**
> A: Tested with **1,000+ concurrent players**. With MySQL and proper caching, it scales to any server size.

**Q: What happens if my database crashes?**
> A: Players retain their cached rank data during the session. On rejoin, UltimateRanks will attempt to reconnect. No data loss occurs (cached data saves before disconnect).

**Q: Can I use this on BungeeCord networks?**
> A: Yes! Use MySQL database mode. All servers in your network will share the same rank database. Players keep their ranks across servers.

 Configuration Questions

**Q: How do I create a new rank?**
```yaml
 Add to ranks.yml:
ranks:
  newrank:
    weight: 15
    display_name: '<aqua>NewRank</aqua>'
    prefix: '<aqua>[NewRank]</aqua> '
    suffix: ''
    gui_icon: DIAMOND
    permissions:
      - 'permission.node.here'

 Then: /rank reload
```

**Q: How do I change the GUI title?**
```yaml
 config.yml:
gui:
  menu-title: '<gradient:red:blue>Custom Title</gradient>'
```

**Q: How do gradients work?**
```yaml
 Simple gradient (2 colors):
prefix: '<gradient:red:blue>VIP</gradient> '

 Multi-color gradient:
prefix: '<gradient:red:yellow:green:blue>Rainbow</gradient> '

 With formatting:
prefix: '<bold><gradient:gold:yellow>VIP</gradient></bold> '
```

 Gameplay Questions

**Q: Can players have multiple ranks?**
> A: **YES!** That's the core feature. Players can own VIP + Builder + Helper simultaneously.

**Q: Do multiple ranks stack permissions?**
> A: **YES!** If you own [Member] with `essentials.spawn` and [VIP] with `essentials.fly`, you get BOTH permissions.

**Q: Can players choose which rank shows in chat?**
> A: **YES!** Open `/rank menu` and click any owned rank to make it active.

**Q: What happens when a rank expires?**
```
1. Automatic cleanup removes expired ranks
2. Player receives notification (if enabled)
3. Permissions from expired rank are removed
4. If expired rank was active, switches to another owned rank
5. Database entry is deleted
```

**Q: Can I give temporary ranks?**
```bash
 Yes! Use duration syntax:
/rank grant Steve vip 30d       30 days
/rank grant Steve builder 1w    1 week
/rank grant Steve premium 1mo   1 month
/rank grant Steve special 1y    1 year
/rank grant Steve permanent     Forever
```

 Admin Questions

**Q: How do I give someone multiple ranks?**
```bash
/rank grant PlayerName vip
/rank grant PlayerName builder
/rank grant PlayerName helper

 Player now owns all three!
 They choose which shows in chat via /rank menu
```

**Q: How do I reset someone's ranks?**
```bash
 Option 1: Set to single rank (removes all others)
/rank set PlayerName default

 Option 2: Remove specific ranks
/rank remove PlayerName vip
/rank remove PlayerName builder
```

**Q: Can I see what ranks someone has?**
> Currently via database or cache inspection. Future update will add `/rank info <player>` command.

**Q: How do I backup the database?**
```bash
 SQLite (automatic backup):
cp plugins/UltimateRanks/data.db plugins/UltimateRanks/data.db.backup

 MySQL (use mysqldump):
mysqldump -u username -p ultimateranks > backup.sql
```

 Troubleshooting

**Q: Ranks not appearing in GUI**
```
1. Check ranks.yml syntax (use YAML validator)
2. Ensure rank has valid gui_icon material
3. Run /rank reload
4. Check console for errors
```

**Q: Permissions not working**
```
1. Check permission handler mode in console startup
2. Verify permissions in ranks.yml
3. Test with /rank menu (requires ultimateranks.menu)
4. Check if LuckPerms is interfering (if using standalone mode)
```

**Q: Database connection failed**
```
 SQLite:
1. Check file permissions
2. Ensure data folder exists

 MySQL:
1. Verify credentials in config.yml
2. Check MySQL server is running
3. Test connection manually
4. Check firewall rules
```

**Q: Chat prefix not showing**
```
1. Ensure chat.enabled: true in config.yml
2. Check if another chat plugin is overriding
3. Verify player has an active rank (/rank menu)
4. Test PlaceholderAPI placeholders
```

---

 Support

 Getting Help

 1. **Check Documentation**
- Read this document thoroughly
- Check example configurations
- Review common issues in FAQ

 2. **Console Logs**
```
Enable debug mode:
  config.yml → advanced.debug: true
  
Check logs:
  /logs/latest.log
  Look for [UltimateRanks] messages
```

 3. **Community Support**
- **Discord**: [geturplugins]

 4. **Report Bugs**
```
Include:
  ✅ Server version (Paper 1.21.x)
  ✅ Plugin version
  ✅ Full error logs
  ✅ config.yml and ranks.yml
  ✅ Steps to reproduce
  ✅ Expected vs actual behavior
```

 Useful Commands for Support

```bash
 Check plugin version
/version UltimateRanks

 Test database connection
/rank reload
 Watch console for database messages

 Enable debug mode
 config.yml → advanced.debug: true
 Restart server

 Export player data (future feature)
/rank export <player>

 Test permissions
/rank menu
 If this works, permission system is functional
```

---

 Performance Optimization

 Recommended Settings

 Small Server (1-50 players)
```yaml
database:
  type: sqlite

performance:
  enable-cache: true
  cache-expiration: 60   minutes
  batch-size: 50
```

 Medium Server (50-200 players)
```yaml
database:
  type: mysql
  mysql:
    pool-size: 5

performance:
  enable-cache: true
  cache-expiration: 45
  batch-size: 100
```

 Large Server (200+ players)
```yaml
database:
  type: mysql
  mysql:
    pool-size: 15
    minimum-idle: 5

performance:
  enable-cache: true
  cache-expiration: 30
  batch-size: 200
```

 Network (BungeeCord/Velocity)
```yaml
database:
  type: mysql
  mysql:
    host: central-db.example.com
    pool-size: 20
    minimum-idle: 10

performance:
  enable-cache: true
  cache-expiration: 20
  batch-size: 500
```

---

 Migration Guide

 From LuckPerms Groups

```bash
 1. Export LuckPerms groups
/lp export

 2. Create matching ranks in ranks.yml
ranks:
  vip:   Match LuckPerms group name
    weight: 10
    display_name: '<gold>VIP</gold>'
    prefix: '<gold>[VIP]</gold> '
    permissions: []   Leave empty, LuckPerms handles it

 3. Enable LuckPerms sync
config.yml:
  integrations:
    luckperms:
      sync-groups: true

 4. Reload
/rank reload

 Players' LuckPerms groups now sync with UltimateRanks
```

 From EssentialsX Kits/Ranks

```bash
 1. Map Essentials groups to UltimateRanks
Essentials: "default" → UltimateRanks: "default"
Essentials: "vip" → UltimateRanks: "vip"

 2. Copy permissions from Essentials config

 3. Grant ranks to players
/rank grant <player> <rank>

 4. Remove Essentials rank system (optional)
```

---

 Changelog

 Version 1.0.0 (Initial Release)
```
✨ Features:
  ✅ Multi-rank ownership system
  ✅ Active display rank selection
  ✅ Paginated GUI with 28 ranks per page
  ✅ Dual permission system (Standalone + LuckPerms)
  ✅ Full MiniMessage support (RGB, gradients)
  ✅ SQLite and MySQL database support
  ✅ Async database operations
  ✅ Smart caching system
  ✅ Expiration system with warnings
  ✅ PlaceholderAPI integration
  ✅ 5 admin commands with tab completion
  ✅ 16 example ranks included

🔧 Technical:
  ✅ Java 21 + Paper 1.21 API
  ✅ HikariCP connection pooling
  ✅ Thread-safe operations
  ✅ SOLID architecture
  ✅ Zero tick lag (100% async)

📚 Documentation:
  ✅ Complete user guide
  ✅ Admin manual
  ✅ Configuration examples
```

---

 Credits & License

 Development Team
- **Lead Developer**: geturplugins
- **Special Thanks**: Paper Team, LuckPerms, PlaceholderAPI

 Libraries Used
- **Paper API** - Minecraft server API
- **LuckPerms API** - Permission system integration
- **PlaceholderAPI** - Placeholder support
- **HikariCP** - Connection pooling
- **Adventure API** - Text component system

---

 Quick Reference Card

```
╔══════════════════════════════════════════════════════════════╗
║              ULTIMATERANKS QUICK REFERENCE                   ║
╠══════════════════════════════════════════════════════════════╣
║                                                              ║
║  PLAYER COMMANDS:                                            ║
║    /rank menu              → Open rank selection GUI         ║
║                                                              ║
║  ADMIN COMMANDS:                                             ║
║    /rank set <player> <rank>           → Set main rank       ║
║    /rank grant <player> <rank> [time]  → Add rank            ║
║    /rank remove <player> <rank>        → Remove rank         ║
║    /rank reload                        → Reload configs      ║
║                                                              ║
║  TIME FORMATS:                                               ║
║    30d = 30 days    1w = 1 week    1mo = 1 month            ║
║    permanent = never expires                                 ║
║                                                              ║
║  PLACEHOLDERS:                                               ║
║    %ultimateranks_prefix%           → Active rank prefix     ║
║    %ultimateranks_rank_displayname% → Rank display name     ║
║    %ultimateranks_total_ranks%      → Number owned          ║
║                                                              ║
║  CONFIG FILES:                                               ║
║    config.yml  → Database, GUI, chat settings               ║
║    ranks.yml   → Rank definitions                           ║
║                                                              ║
║  SUPPORT:                                                    ║
║    Discord: geturplugins                         ║
║                                                              ║
╚══════════════════════════════════════════════════════════════╝
```

---

 Final Notes

 Feedback & Suggestions

We're constantly improving UltimateRanks based on user feedback!

**Submit Suggestions:**
- Discord
- SpigotMC reviews

---

**🎉 Thank you for choosing UltimateRanks!**

*Advanced Rank Management Made Simple*

--- **

Need a server to run EnderChestVault?
Get 24/7 high-performance hosting from reliable hosting for your community!
Click here to get started with KCB Hosting

 

 

The UltimateRanks Team

profile avatar
  • 2
    Followers
  • 33
    Projects
  • 11.3K
    Downloads

More from geturpluginsView all

  • UltimateStrengthSMP project image

    UltimateStrengthSMP

    • 1.1K
    • Bukkit Plugins

    Recreation of popular minecraft Strength SMP in plugin.....

    • 1.1K
    • May 22, 2026
    • Bukkit Plugins
    • +4
  • FortunePillars project image

    FortunePillars

    • 292
    • Bukkit Plugins

    Recreation of Pillars of Fortune gamemode of Cubecraft.........

    • 292
    • May 18, 2026
    • Bukkit Plugins
    • +2
  • UltClearLagg project image

    UltClearLagg

    • 16
    • Bukkit Plugins

    Advanced lag reduction, automatic cleanup systems, mob optimization, TPS monitoring, smart entity management, redstone lag prevention, Bedrock GUI support, and real-time server performance tools.

    • 16
    • May 17, 2026
    • Bukkit Plugins
    • +3
  • UltProfile project image

    UltProfile

    • 0
    • Bukkit Plugins

    Track players, manage moderation actions, inspect inventories, view session history, and control everything through fully customizable GUIs.

    • 0
    • May 17, 2026
    • Bukkit Plugins
    • +3
  • UltimateStrengthSMP project image

    UltimateStrengthSMP

    • 1.1K
    • Bukkit Plugins

    Recreation of popular minecraft Strength SMP in plugin.....

    • 1.1K
    • May 22, 2026
    • Bukkit Plugins
    • +4
  • FortunePillars project image

    FortunePillars

    • 292
    • Bukkit Plugins

    Recreation of Pillars of Fortune gamemode of Cubecraft.........

    • 292
    • May 18, 2026
    • Bukkit Plugins
    • +2
  • UltClearLagg project image

    UltClearLagg

    • 16
    • Bukkit Plugins

    Advanced lag reduction, automatic cleanup systems, mob optimization, TPS monitoring, smart entity management, redstone lag prevention, Bedrock GUI support, and real-time server performance tools.

    • 16
    • May 17, 2026
    • Bukkit Plugins
    • +3
  • UltProfile project image

    UltProfile

    • 0
    • Bukkit Plugins

    Track players, manage moderation actions, inspect inventories, view session history, and control everything through fully customizable GUIs.

    • 0
    • May 17, 2026
    • Bukkit Plugins
    • +3