Modular Paper & Folia server core for Minecraft 1.21+, powered by Kotlin.
Pulse unifies ranks, permissions, economy, chat, shops, tags, punishments and placeholders into one lightweight core for Paper and Folia servers. Every subsystem is modular, asynchronous, and backed by Exposed + HikariCP storage.
- Unified manager layer for core gameplay systems
- Automatic PlaceholderAPI expansion and Vault hooks when available
- YAML-driven configuration with versioned resource processing
- Download the latest Pulse jar and drop it in
plugins/. - Start your server to generate
plugins/Pulse/defaults. - Tweak the YAML configs and reload with
/pulse reload.
# Windows
gradlew.bat shadowJar
# macOS / Linux
./gradlew shadowJarThe shaded jar is created at build/libs/Pulse-1.0-all.jar.
Click to view all permissions
pulse.*- All pulse permissionspulse.admin- Administrator access to pulsepulse.chat.color- Use color codes in chat messages
pulse.rank- Access to rank commands (includes all sub-permissions)pulse.rank.create- Create new rankspulse.rank.delete- Delete existing rankspulse.rank.set- Set player rankspulse.rank.info- View rank informationpulse.rank.list- List all rankspulse.rank.permission- Manage rank permissionspulse.rank.reload- Reload rank system
pulse.permission- Access to permission commands (includes all sub-permissions)pulse.permission.add- Add permissions to playerspulse.permission.remove- Remove permissions from playerspulse.permission.deny- Deny permissions for playerspulse.permission.check- Check player permissionspulse.permission.list- List player permissions
pulse.gamemode- Change gamemode (includes all sub-permissions)pulse.gamemode.creative- Change to creative modepulse.gamemode.survival- Change to survival modepulse.gamemode.adventure- Change to adventure modepulse.gamemode.spectator- Change to spectator modepulse.gamemode.others- Change others' gamemode
pulse.punishment- All punishment permissions (includes all sub-permissions)pulse.punishment.kick- Kick playerspulse.punishment.warn- Warn playerspulse.punishment.warns- View player warningspulse.punishment.unwarn- Remove warningspulse.punishment.mute- Mute playerspulse.punishment.unmute- Unmute playerspulse.punishment.freeze- Freeze/unfreeze playerspulse.punishment.tempban- Temporarily ban playerspulse.punishment.ban- Permanently ban playerspulse.punishment.unban- Unban playerspulse.punishment.ipban- IP ban playerspulse.punishment.tempipban- Temporarily IP ban players
pulse.coin- Access to coin commands (includes pay permission)pulse.coin.add- Add coins to playerspulse.coin.remove- Remove coins from playerspulse.coin.set- Set player coin balancespulse.coin.pay- Pay other playerspulse.coin.top- View balance leaderboardpulse.coin.others- Check other players' balances
pulse.shop- Access to shop (includes use permission)pulse.shop.use- Use the shoppulse.shop.reload- Reload shop configurationpulse.shop.list- List shop items
pulse.tag- Access to tag commands (includes all sub-permissions)pulse.tag.others- View other players' tagspulse.tag.give- Give tags to playerspulse.tag.remove- Remove tags from playerspulse.tag.create- Create new tagspulse.tag.edit- Edit existing tagspulse.tag.delete- Delete tagspulse.tag.reload- Reload tag system
pulse.grant- Access to grant command GUI for managing player ranks
pulse.playtime- View own playtimepulse.playtime.others- View other players' playtime
pulse.profile- View own profilepulse.profile.others- View other players' profilespulse.profile.staff- Access staff-only features in profiles
pulse.report- Report playerspulse.reports.notify- Receive notifications when players are reported
pulse.vanish- Toggle vanish mode (includes all sub-permissions)pulse.vanish.others- Vanish other playerspulse.vanish.see- See vanished players
pulse.update.notify- Receive update notifications on join
Click to view all placeholders
All placeholders use the format %pulse_<placeholder>%
%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)
%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
%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
%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
%pulse_players_total%- Total players in database%pulse_players_online%- Current online players%pulse_ranks_total%- Total ranks%pulse_default_rank%- Default rank ID
%pulse_last_seen%- Time since player was last seen
%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
%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
