A full-featured lifesteal plugin for Minecraft built for Paper servers. EzLifesteal gives server owners precise control over heart gain and loss, a complete heart item economy, seasonal resets, anti-abuse systems, and a revive beacon subsystem - all in one lightweight, highly configurable jar.
lifesteal-worlds.yml.hearts.yml./lifesteal hologram place leaderboard, /lifesteal top rankings, and live PlaceholderAPI data for scoreboards.lifesteal.alert; stores full history for review.languages/<locale>.yml.Banned players can be restored by a teammate who right-clicks a beacon block with a configurable voucher item.
/lifesteal beacon add, or let the plugin place and manage beacons automatically.revive-beacon.spawn.availability-event.
-- Beacon commands: /beacon spawn [world x y z], /beacon despawn <id|all>, /beacon spawns.!Beacon countdown
!Beacon warming-up !Beacon player selection
Physical heart items that players can hold, trade, and consume to gain hearts.
hearts.yml with custom materials, player head textures, and optional NBT data./lifesteal giveheart <player> <id|tier> [amount] to hand them out. Items drop at the player's feet if inventory is full.!EzLifesteal leaderboard and scoreboard
EzLifesteal runs standalone. All integrations are soft dependencies, the plugin starts normally if any of them are absent.
| Integration | Purpose |
|---|---|
| PlaceholderAPI | Player and leaderboard placeholders for scoreboards, tab lists, and other plugins |
| Vault | Economy payouts for kill streak rewards |
| EzSeasons | Automated season scheduling and heart resets |
| WorldGuard | Protection region around each plugin-spawned beacon |
| EzCountdown | Visible countdown timer during beacon warm-up (falls back to built-in Bukkit task) |
| TeamsAPI | Skip heart transfers between teammates (team-kill-bypass-with-teams-api in lifesteal-core.yml) |
Raise the heart floor and disable zero-heart bans so everyone keeps playing.
# lifesteal-core.yml
default-hearts: 12.0
min-hearts: 6.0
max-hearts: 30.0
hearts-per-kill: 1.0
hearts-lost-on-death: 1.0
ban-when-zero-hearts: false
Every fight counts - lose two hearts on death, gain half a heart on kills, with tougher rules in the Nether.
# lifesteal-core.yml
default-hearts: 8.0
min-hearts: 1.0
max-hearts: 16.0
hearts-per-kill: 0.5
hearts-lost-on-death: 2.0
ban-when-zero-hearts: true
# lifesteal-worlds.yml
world-overrides:
world_nether:
hearts-per-kill: 0.25
hearts-lost-on-death: 3.0
Install PlaceholderAPI and the expansion registers automatically.
%ezlifesteal_hearts% / %ezlifesteal_current_hearts% - stored heart count for a player.%ezlifesteal_default_hearts%, %ezlifesteal_min_hearts%, %ezlifesteal_max_hearts%%ezlifesteal_top_<n>_hearts%, %ezlifesteal_top_<n>_current_hearts%, %ezlifesteal_top_<n>_name%, %ezlifesteal_top_<n>_uuid%| Scope | Examples |
|---|---|
| Player | /lifesteal, /lifesteal top, /lifesteal transfer, /lifesteal shop |
| Staff | /lifesteal give, /lifesteal revive, /lifesteal reload, /lifesteal test |
| Beacon | `/beacon add |
Permission bundles: lifesteal.player · lifesteal.mod · lifesteal.admin
See the full Commands reference and Permissions list.
data/players/<uuid>.yml; auto-migrates legacy players.yml on first load.ON DUPLICATE KEY UPDATE for safe concurrent saves./lifesteal reload to switch backends without restarting.plugins/ folder and start the server.YAML or MYSQL storage in storage.yml, set your language in config.yml, and tune heart rules in lifesteal-core.yml.lifesteal-worlds.yml and overlays in features.yml. Install EzSeasons if you want season resets.admin.yml to define staff and bypass rules./lifesteal reload after config changes. Run /lifesteal test <kill|death> to validate flows before going live.Need help or want to request a feature? Join our Discord. Source: GitHub repository

Steal hearts from other players with leaderboard, auto-ban and more tools for competitive Minecraft Lifesteal servers