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.
Gameplay Features
- Per-world heart rules - set default, minimum, and maximum hearts; configure kill rewards and death penalties; choose zero-heart ban or respawn behaviour; define per-world overrides in
lifesteal-worlds.yml. - Mob heart drops - let mobs drop hearts on death with per-entity permission nodes and world allow/deny lists.
- Kill streak rewards - trigger money payouts (Vault), console commands, item grants, and server broadcasts at configurable milestone streaks.
- Heart item economy - physical heart objects with custom materials, textures, and optional NBT. Players give, trade, auction, or consume them to gain hearts. Configured in
hearts.yml. - Heart shop - configurable shop GUI where players can spend in-game currency on hearts.
- Combat logout protection - tags PvP sessions for a configurable window and punishes quitters so duels stay fair.
- Leaderboards & overlays - action-bar / boss-bar overlays, a self-updating
/lifesteal hologram placeleaderboard,/lifesteal toprankings, and live PlaceholderAPI data for scoreboards. - Smurf detection - monitors farm loops and rotating kill rings; alerts staff holding
lifesteal.alert; stores full history for review. - Admin controls - define staff by ops, permission node, UUID, or name; optionally bypass heart gain or loss for admins; smurf alerts can be kept admin-only.
- Seasonal resets - install EzSeasons for automated season scheduling, countdown broadcasts, and automatic heart resets. No extra bridge jars required.
- 8 built-in translations - English, German, Spanish, French, Dutch, Portuguese, Russian, and Chinese. All messages editable in
languages/<locale>.yml.
Revive Beacon
Banned players can be restored by a teammate who right-clicks a beacon block with a configurable voucher item.
- Whitelist existing beacons with
/lifesteal beacon add, or let the plugin place and manage beacons automatically. - Beacon spawn subsystem - places BEACON blocks at random or specified coordinates on a schedule or on demand.
- Full lifecycle: placement → optional WorldGuard protection region → optional EzCountdown warm-up timer → available → auto-expiry.
- When a beacon becomes claimable, the plugin fires a server-wide broadcast, title overlay, particles, and fireworks - fully configurable under
revive-beacon.spawn.availability-event. -- Beacon commands:/beacon spawn [world x y z],/beacon despawn <id|all>,/beacon spawns.
Screenshots


Heart Objects
Physical heart items that players can hold, trade, and consume to gain hearts.
- Define any number of heart tiers in
hearts.ymlwith custom materials, player head textures, and optional NBT data. - Use
/lifesteal giveheart <player> <id|tier> [amount]to hand them out. Items drop at the player's feet if inventory is full. - Use cases: loot drops on kill, auction-house trading, rare collectible hearts, heart-based economy.
Optional Integrations

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) |
Configuration Presets
Casual SMP
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
Hardcore Grind
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
PlaceholderAPI Placeholders
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%
Commands & Permissions
| 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.
Storage & Reliability
- YAML (default) - one file per player at
data/players/<uuid>.yml; auto-migrates legacyplayers.ymlon first load. - MySQL - table created on startup using
ON DUPLICATE KEY UPDATEfor safe concurrent saves. - All I/O runs off the main thread. Use
/lifesteal reloadto switch backends without restarting.
Quick Start
- Place the jar in your server's
plugins/folder and start the server. - Pick
YAMLorMYSQLstorage instorage.yml, set your language inconfig.yml, and tune heart rules inlifesteal-core.yml. - Configure world overrides in
lifesteal-worlds.ymland overlays infeatures.yml. Install EzSeasons if you want season resets. - Review
admin.ymlto define staff and bypass rules. - Use
/lifesteal reloadafter 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
No gallery available for this project.
| Version | Minecraft | Loader | Download |
|---|---|---|---|
|
EzLifesteal 1.2.0 1.2.0 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2
|
folia, paper, purpur, spigot
|
Download |
|
EzLifesteal 1.1.2 1.1.2 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11
|
paper, purpur
|
Download |
|
EzLifesteal 1.1.1 1.1.1 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2
|
paper, purpur
|
Download |
|
EzLifesteal 1.1.0 1.1.0 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2
|
paper, purpur
|
Download |
|
EzLifesteal 1.1.0-nightly.20260513 1.1.0-nightly.20260513 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2
|
paper, purpur
|
Download |
|
EzLifesteal 1.0.1 1.0.1 |
26.1, 26.1.1, 26.1.2
|
bukkit, paper, purpur, spigot
|
Download |
|
EzLifesteal 0.4.4 0.4.4 |
1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11
|
bukkit, paper, purpur, spigot
|
Download |
|
EzLifesteal 0.4.3 0.4.3 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11
|
bukkit, paper, purpur, spigot
|
Download |
|
EzLifesteal 0.4.2 0.4.2 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11
|
bukkit, paper, purpur, spigot
|
Download |
|
EzLifesteal 0.4.1 0.4.1 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11
|
bukkit, paper, purpur, spigot
|
Download |
|
EzLifesteal 0.3.1 0.3.1 |
1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11
|
bukkit, paper, purpur, spigot
|
Download |
