PulseCore
The best core plugin for your minecraft server.
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.
PulseCore
✨ Pulse Features
🎯 Core Systems
🏆 Rank System
A comprehensive rank management system with support for multiple ranks per player, temporary ranks, and advanced permission inheritance.
Features: - Create unlimited custom ranks with weights, prefixes, and suffixes - Assign multiple ranks to a single player simultaneously - Set temporary ranks with automatic expiration - Primary rank system with automatic weight-based selection - Default rank assignment for new players - Full permission inheritance from ranks to players
Commands: - `/rank create <rank> <weight> <prefix> <suffix>` - Create a new rank - `/rank delete <rank>` - Delete an existing rank - `/rank set <player> <rank> [duration]` - Set a player's rank - `/rank info <rank>` - View detailed rank information - `/rank list` - List all available ranks - `/rank permission <rank> <add|remove|deny|list> [permission]` - Manage rank permissions - `/rank reload` - Reload the rank system
🎁 Grant System (GUI)
An intuitive GUI-based system for managing player ranks with visual feedback and confirmation steps.
Features: - Clean, user-friendly inventory interface - Grant ranks with custom durations (1h, 1d, 7d, 30d, 90d, or permanent) - View all active ranks on a player - Remove ranks with a single click - Visual distinction between primary and secondary ranks - Real-time expiration countdown display - Confirmation system to prevent accidental grants
Usage: - `/grant <player>` - Open the grant GUI for a player - Navigate through menus to select ranks and durations - Click to confirm or cancel operations
🔐 Permission System
Advanced permission management with player-specific and rank-based permissions, including denial support.
Features: - Add permissions directly to players or ranks - Deny specific permissions (overrides grants) - Permission inheritance from all player ranks - Check player permissions with full inheritance resolution - List all permissions for players or ranks - Real-time permission updates without reconnection
Commands: - `/permission add <player> <permission>` - Add a permission to a player - `/permission remove <player> <permission>` - Remove a permission from a player - `/permission deny <player> <permission>` - Deny a permission for a player - `/permission check <player> <permission>` - Check if a player has a permission - `/permission list <player>` - List all player permissions
💰 Economy System
Full-featured economy with Vault integration, transaction history, and leaderboards.
Features: - Customizable currency name and symbol - Support for decimal balances - Player-to-player payments with transaction fees - Balance leaderboards (top balances) - Admin commands for adding, removing, and setting balances - Vault economy provider for compatibility with other plugins - Persistent storage with automatic save
Commands: - `/coin` - Check your balance - `/coin <player>` - Check another player's balance - `/coin pay <player> <amount>` - Pay another player - `/coin add <player> <amount>` - Add coins to a player (admin) - `/coin remove <player> <amount>` - Remove coins from a player (admin) - `/coin set <player> <amount>` - Set a player's balance (admin) - `/coin top` - View balance leaderboard
🛒 Shop System
YAML-configured shop with multi-page support, enchantments, and flexible pricing.
Features: - Multiple shop pages with custom titles - Support for items with custom names, lore, and enchantments - Stack-based purchasing (buy multiple items at once) - Permission-based shop access - Economy integration for purchases - Live configuration reload without restart - Potion effects and item flags support
Commands: - `/shop` - Open the shop GUI - `/shop list` - List all shop items - `/shop reload` - Reload shop configuration (admin)
Configuration: ```yaml pages: - title: "Main Shop" items: - slot: 0 material: DIAMOND_SWORD name: "&bDiamond Sword" price: 1000 enchantments: - SHARPNESS:5 ```
⏱️ Playtime System
Track, display, and persist player playtime with Folia-safe scheduling and database storage.
Features: - Accurate playtime tracking with session calculation - Asynchronous auto-save every 5 minutes (Folia/Paper compatible) - Persistent storage in database (SQLite/MySQL/PostgreSQL) - Cached lookups for performance - Placeholders for formatted/raw time values - Commands to view self and others' playtime with permission checks
Commands: - `/playtime` - View your playtime - `/playtime <player>` - View another player's playtime (requires `pulse.playtime.others`)
👤 Profile System
View comprehensive player profiles with stats, ranks, playtime, economy, and tags in a GUI.
Features: - Interactive GUI-based player profiles - Display player head with UUID and online/offline status - Show current rank and balance with currency name - Display total playtime (formatted as days/hours/minutes) - View active and owned tags (up to 5 shown, with counter for more) - Staff button to view punishment history (requires `pulse.profile.staff`) - View own profile or other players' profiles with permission
Commands: - `/profile` - View your own profile - `/profile <player>` - View another player's profile (requires `pulse.profile.others`)
📢 Report System
Command-based player reporting system with staff notifications and database logging.
Features: - Report online or offline players with `/report <player> <reason>` - Minimum 5-character reason required - Assigns unique report ID for tracking - Sends confirmation message to reporter with report ID - Notifies all online staff members with `pulse.reports.notify` permission
Commands: - `/report <player> <reason>` - Report a player for staff review
🏷️ Tag System
Player name tags with prefixes, suffixes, colors, and decorations.
Features: - Create unlimited custom tags - Rich formatting with colors, gradients, and decorations - Tag collections and unlockables - Give/remove tags from players - Players can equip tags from their collection - Permission-based tag access - Default tag support
Commands: - `/tag` - Open tag selection GUI - `/tag <tag>` - Equip a specific tag - `/tag others <player>` - View another player's tags (admin) - `/tag give <player> <tag>` - Give a tag to a player (admin) - `/tag remove <player> <tag>` - Remove a tag from a player (admin) - `/tag create <id> <prefix> <suffix>` - Create a new tag (admin) - `/tag edit <id> <prefix|suffix> <value>` - Edit a tag (admin) - `/tag delete <id>` - Delete a tag (admin) - `/tag reload` - Reload tag system (admin)
⚖️ Punishment System
Comprehensive moderation toolkit with temporary and permanent punishments.
Features: - Kick, warn, mute, freeze, ban, and IP ban - Temporary bans and IP bans with duration support - Warning accumulation system with history - Remove individual warnings - Persistent punishment storage - Broadcast messages for public punishments - Staff-only silent punishments
Commands: - `/kick <player> [reason]` - Kick a player - `/warn <player> <reason>` - Warn a player - `/warns <player>` - View player warnings - `/unwarn <player> <id>` - Remove a warning - `/mute <player> [duration] [reason]` - Mute a player - `/unmute <player>` - Unmute a player - `/freeze <player>` - Freeze/unfreeze a player - `/ban <player> [reason]` - Permanently ban a player - `/tempban <player> <duration> [reason]` - Temporarily ban a player - `/unban <player>` - Unban a player - `/ipban <player> [reason]` - IP ban a player - `/tempipban <player> <duration> [reason]` - Temporarily IP ban a player
🎮 Gamemode Commands
Quick gamemode switching with shorthand aliases and permission support.
Features: - Change your own gamemode or others' with permission - Short aliases for quick switching (gmc, gms, gma, gmsp) - Permission-based access control per gamemode
Commands: - `/gamemode <mode> [player]` - Change gamemode - `/gmc [player]` - Creative mode - `/gms [player]` - Survival mode - `/gma [player]` - Adventure mode - `/gmsp [player]` - Spectator mode
💬 Chat System
Advanced chat formatting with rank integration, color support, and customizable join/leave messages.
Features: - Automatic rank prefix/suffix in chat - Color code support for players with permission - PlaceholderAPI integration for chat format - Configurable chat format via YAML - Persistent display name formatting - Customizable join/leave messages with color support - Toggle join/leave messages on/off independently - %player% placeholder for player names in messages
🚫 Command Blocker System
Block unwanted commands and provide custom help messages with full tab completion filtering.
Features: - Block any command from being executed by players - Configurable list of blocked commands in `config.yml` - Custom blocked command message with MiniMessage support - Remove blocked commands from tab completions automatically - Custom help command system that overrides default `/help` - Multi-line help messages with full formatting support - Toggle help command on/off independently - Case-insensitive command matching for reliability - Lowest priority event handling to intercept before other plugins
Configuration: ```yaml command-blocker: blocked-commands: - "plugins" - "pl" - "version" - "ver" blocked-message: "<red>Unknown command. Type "/help" for help."
help-command: enabled: true message: - "<yellow>Available Commands:" - "<gray>• <white>/spawn <gray>- Teleport to spawn" - "<gray>• <white>/home <gray>- Teleport home" ```
🔧 Technical Features
🗄️ Database
- MySQL/MariaDB with Kotlin DSL for type-safe queries - MySQL/MariaDB connection pooling for optimal performance - Support for MySQL/MariaDB (default) and MySQL/MariaDB - Automatic schema creation and migration - Asynchronous database operations (non-blocking) - Connection validation and automatic recovery
⚡ Performance
- Caching layer with proper thread scheduling - Caching layer for all heavy operations - Caching layer for frequently accessed data - Optimized database queries with prepared statements - Minimal main thread blocking - Efficient placeholder resolution
🔌 Integration
- LuckPerms compatibility for economy and permissions - LuckPerms compatibility with 40+ placeholders - LuckPerms compatibility (optional, Pulse can standalone) - Event-driven architecture for extensibility - Open API for third-party plugins
📝 Configuration
- Validation configuration files - Validation with migration - Validation for most configurations - Validation with helpful error messages - Per-system configuration files for organization
🎨 Customization
- Punishment reasons for all player-facing text - Support for Punishment reasons and legacy color codes - Punishment reasons and suffixes - Custom Punishment reasons with unlimited pages - Punishment reasons and duration formats
🛡️ Security
- Rate limiting via prepared statements - Rate limiting on all sensitive commands - Rate limiting and sanitization - Rate limiting on economy transactions - Audit trail for administrative actions
🌐 Multi-Server Support
- Shared database for cross-server data - Synchronized rank changes across network - Global economy balances - Network-wide punishments - Cross-server placeholders
📦 Modular Architecture
Every system is independently functional: - Disable economy if using another plugin - Run without shop if not needed - Use only the rank system - Mix and match features as needed
---
Permissions
Click to view all permissions
Root Permissions
- `pulse.*` - All pulse permissions - `pulse.admin` - Administrator access to pulse - `pulse.chat.color` - Use color codes in chat messages
Rank Permissions
- `pulse.rank` - Access to rank commands (includes all sub-permissions) - `pulse.rank.create` - Create new ranks - `pulse.rank.delete` - Delete existing ranks - `pulse.rank.set` - Set player ranks - `pulse.rank.info` - View rank information - `pulse.rank.list` - List all ranks - `pulse.rank.permission` - Manage rank permissions - `pulse.rank.reload` - Reload rank system
Permission Management
- `pulse.permission` - Access to permission commands (includes all sub-permissions) - `pulse.permission.add` - Add permissions to players - `pulse.permission.remove` - Remove permissions from players - `pulse.permission.deny` - Deny permissions for players - `pulse.permission.check` - Check player permissions - `pulse.permission.list` - List player permissions
Gamemode Permissions
- `pulse.gamemode` - Change gamemode (includes all sub-permissions) - `pulse.gamemode.creative` - Change to creative mode - `pulse.gamemode.survival` - Change to survival mode - `pulse.gamemode.adventure` - Change to adventure mode - `pulse.gamemode.spectator` - Change to spectator mode - `pulse.gamemode.others` - Change others' gamemode
Punishment Permissions
- `pulse.punishment` - All punishment permissions (includes all sub-permissions) - `pulse.punishment.kick` - Kick players - `pulse.punishment.warn` - Warn players - `pulse.punishment.warns` - View player warnings - `pulse.punishment.unwarn` - Remove warnings - `pulse.punishment.mute` - Mute players - `pulse.punishment.unmute` - Unmute players - `pulse.punishment.freeze` - Freeze/unfreeze players - `pulse.punishment.tempban` - Temporarily ban players - `pulse.punishment.ban` - Permanently ban players - `pulse.punishment.unban` - Unban players - `pulse.punishment.ipban` - IP ban players - `pulse.punishment.tempipban` - Temporarily IP ban players
Economy Permissions
- `pulse.coin` - Access to coin commands (includes pay permission) - `pulse.coin.add` - Add coins to players - `pulse.coin.remove` - Remove coins from players - `pulse.coin.set` - Set player coin balances - `pulse.coin.pay` - Pay other players - `pulse.coin.top` - View balance leaderboard - `pulse.coin.others` - Check other players' balances
Shop Permissions
- `pulse.shop` - Access to shop (includes use permission) - `pulse.shop.use` - Use the shop - `pulse.shop.reload` - Reload shop configuration - `pulse.shop.list` - List shop items
Tag Permissions
- `pulse.tag` - Access to tag commands (includes all sub-permissions) - `pulse.tag.others` - View other players' tags - `pulse.tag.give` - Give tags to players - `pulse.tag.remove` - Remove tags from players - `pulse.tag.create` - Create new tags - `pulse.tag.edit` - Edit existing tags - `pulse.tag.delete` - Delete tags - `pulse.tag.reload` - Reload tag system
Grant Permissions
- `pulse.grant` - Access to grant command GUI for managing player ranks
Playtime Permissions
- `pulse.playtime` - View own playtime - `pulse.playtime.others` - View other players' playtime
Profile Permissions
- `pulse.profile` - View own profile - `pulse.profile.others` - View other players' profiles - `pulse.profile.staff` - Access staff-only features in profiles
Report Permissions
- `pulse.report` - Report players - `pulse.reports.notify` - Receive notifications when players are reported
Miscellaneous Permissions
- `pulse.update.notify` - Receive update notifications on join
Placeholders
Click to view all placeholders
All placeholders use the format `%pulse_<placeholder>%`
Rank Information
- `%pulse_rank%` - Player's rank ID - `%pulse_rank_name%` - Player's rank name - `%pulse_rank_prefix%` - Player's rank prefix - `%pulse_rank_suffix%` - Player's rank suffix - `%pulse_rank_weight%` - Player's rank weight - `%pulse_rank_is_default%` - Whether player has default rank (true/false)
Player Display
- `%pulse_player_formatted%` - Formatted player display name - `%pulse_player_display%` - Player display name (alias) - `%pulse_player_prefix%` - Player's prefix - `%pulse_player_suffix%` - Player's suffix - `%pulse_player_name_formatted%` - Player name with prefix and suffix
Permission Information
- `%pulse_permissions_count%` - Total permissions count - `%pulse_permissions_total%` - Total permissions count (alias) - `%pulse_permissions_player_count%` - Player-specific permissions count - `%pulse_permissions_rank_count%` - Rank permissions count - `%pulse_permissions_denied_count%` - Denied permissions count
Economy
- `%pulse_balance%` - Player's balance (formatted with currency symbol) - `%pulse_money%` - Player's balance (alias) - `%pulse_balance_raw%` - Player's balance (raw number) - `%pulse_currency_name%` - Currency name (singular) - `%pulse_currency_name_plural%` - Currency name (plural) - `%pulse_currency_symbol%` - Currency symbol
Server Statistics
- `%pulse_players_total%` - Total players in database - `%pulse_players_online%` - Current online players - `%pulse_ranks_total%` - Total ranks - `%pulse_default_rank%` - Default rank ID
Time
- `%pulse_last_seen%` - Time since player was last seen
Playtime
- `%pulse_playtime%` - Player's playtime (formatted) - `%pulse_playtime_raw%` - Player's playtime in milliseconds - `%pulse_playtime_hours%` - Player's playtime in hours (2 decimals) - `%pulse_playtime_minutes%` - Player's playtime in minutes - `%pulse_playtime_seconds%` - Player's playtime in seconds
Dynamic Placeholders
- `%pulse_has_permission_<permission>%` - Check if player has permission (true/false) - `%pulse_rank_players_online_<rank>%` - Online players with specific rank - `%pulse_rank_players_total_<rank>%` - Total players with specific rank - `%pulse_rank_weight_<rank>%` - Weight of specific rank - `%pulse_rank_prefix_<rank>%` - Prefix of specific rank - `%pulse_rank_suffix_<rank>%` - Suffix of specific rank - `%pulse_rank_display_<rank>%` - Display name of specific rank - `%pulse_has_balance_<amount>%` - Check if player has balance amount (true/false) - `%pulse_balance_formatted_<amount>%` - Format a specific amount with currency symbol
---
Pulse - One plugin, infinite possibilities. Built for performance, designed for simplicity.