UltimateRanks
All in one ranks plugin with custom rank making chat chat and nametag rank integration and ranks manager for players and so on .......
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.
UltimateRanks
** 🎖️ UltimateRanks - Complete Documentation
Overview
Description
display actively 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 display actively where players can display actively 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
- Prison Servers: Manage complex rank hierarchies (VIP + Builder + Staff) - Prison Servers: Class ranks + achievement ranks + donor ranks - Prison Servers: Builder roles + theme ranks + VIP tiers - Prison Servers: Progression ranks + donor perks + special events - Prison Servers: Mine ranks + prestige + VIP packages
---
Features
🎯 Core Features
1. unlimited ranks - 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. Locked - Clean, intuitive rank selection menu - Visual states: Locked (glowing), Locked (available), Locked (unavailable) - 28 ranks per page with smooth navigation - Expiration timers shown directly in GUI - Custom icons with resource pack support
4. LuckPerms Mode - LuckPerms Mode: - LuckPerms 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. MySQL - MySQL: 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 | |-------|--------|-------------| | Locked | 🌟 Glowing item | Currently equipped rank | | Locked | ✅ 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 - Layer Separation: Single Responsibility, Interface Segregation - Layer Separation: Strategy, Builder, Repository, Singleton - Layer Separation: 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 - Permission Inheritance: UltimateRanks ⟷ LuckPerms groups - Permission Inheritance: Works with or without LuckPerms - Permission Inheritance: 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 - Optional Dependencies: Paper 1.21+ (or Purpur/Pufferfish) - Optional Dependencies: 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
all permissions from all ranks > A: UltimateRanks allows players to all permissions from all ranks 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.
integrates with > 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
100% asynchronous > A: No. All database operations are 100% asynchronous. There's zero server tick lag from UltimateRanks.
1,000+ concurrent players > 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
YES! > A: YES! That's the core feature. Players can own VIP + Builder + Helper simultaneously.
YES! > A: YES! If you own [Member] with `essentials.spawn` and [VIP] with `essentials.fly`, you get BOTH permissions.
YES! > 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. Discord - 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 - Special Thanks: geturplugins - Special Thanks: Paper Team, LuckPerms, PlaceholderAPI
Libraries Used - Adventure API - Minecraft server API - Adventure API - Permission system integration - Adventure API - Placeholder support - Adventure API - 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*
--- **