PulseCore

The best core plugin for your minecraft server.

77

Quick challenge

How far can you run before the mobs catch you?

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.

ADS