Compatibility
Minecraft: Java Edition
Platforms
Links
Creators
Details
LifestealXX
A lightweight, production-ready Lifesteal plugin for Paper/Spigot 1.21.x. Players lose hearts on death, steal hearts on kills, craft Heart items, and use Revive Beacons to bring eliminated players back. Everything is configurable: min/default/max hearts, death penalties, item recipes, and more. Includes PlaceholderAPI support, admin tools, and hot-reload.
✨ Features
Configurable hearts system: set min, default, and max hearts.
Steal on kill: killer gains a heart (or drops a heart if at max).
Heart items: craftable and consumable only below a threshold (e.g. under 10 hearts).
Revive Beacon: revive eliminated players to a configurable heart count.
Droplogic: optional heart drops on non-player deaths or when killer is maxed.
Withdraw: convert your own hearts into Heart items.
Admin toolkit: get/set/add/remove hearts, eliminate/revive, give items, and reload.
PlaceholderAPI: clean placeholders for scoreboards, tabs, and holograms.
Hot reload: /lifesteal reload applies config & recipes without a restart.
🕹️ Gameplay (defaults)
Max hearts: 20 (40 HP).
Consume Heart items only when you’re below 10 hearts.
On player kill: killer gains 1 heart; if already at max, a Heart item drops.
On non-player death: Heart item drops.
At min hearts: player is eliminated (Spectator) until revived.
🔧 Commands
/withdraw [amount] — turn your hearts into Heart items (leaves a minimum set by config).
/revive <player> — revive an eliminated player (must hold a Revive Beacon).
Admin [/lifesteal or /ls]
get <player> — show hearts/elimination.
set <player> <hearts> — set hearts (respects min/max).
add <player> <amount> / remove <player> <amount>
revive <player> [hearts] — revive without a beacon.
eliminate <player> — set to min & Spectator.
giveheart <player> [amount] / givebeacon <player> [amount]
reload — reload data & config (re-registers recipes).
🔤 Placeholders
%lifesteal_current_hearts% — player’s current hearts
%lifesteal_max_hearts% — max hearts (from config)
%lifesteal_display% — current/max (e.g. 9/20)
Aliases: %lifesteal_current%, %lifesteal_max%
🔧 dependencies
- placeholderAPI
- java 21 required!
⚙️ Config (config.yml)
- Fully configurable hearts, behavior, and both recipes (shape, ingredients, output), plus item name/lore/material/glint.
hearts:
min: 0
default: 10
max: 20
consume_below: 10
lose_on_death: 1
withdraw_min_remaining: 1
eliminate_at_min: true
behavior:
give_killer_heart_on_kill: true
drop_on_nonplayer_death: true
drop_when_killer_at_max: true
items:
heart:
material: NETHER_WART
name: "&c&lHeart"
lore: ["&7Consume to gain 1 heart", "&7Usable only when below 10 hearts"]
glint: true
recipe:
amount: 1
shape: ["RRR","RNR","RRR"]
ingredients: { R: REDSTONE_BLOCK, N: NETHER_STAR }
revive_beacon:
material: BEACON
name: "&b&lRevive Beacon"
lore: ["&7Use /revive <player> while holding this"]
glint: true
recipe:
amount: 1
shape: ["NSN","SBS","NSN"]
ingredients: { N: NETHER_STAR, S: NETHERITE_SCRAP, B: BEACON }
Reload in-game with: /lifesteal reload.
✅ Compatibility
Server: Paper / Spigot 1.21.x (Paper recommended; Purpur/Pufferfish/spigot compatible)
📦 Installation
Drop the plugin JAR into plugins/.
(Optional) Install PlaceholderAPI.
Start the server once to generate config.yml.
Tweak config & recipes, then /lifesteal reload.
🔐 Permissions
lifesteal.withdraw — use /withdraw (default: true)
lifesteal.revive — use /revive with a beacon (default: true)
lifesteal.admin — all admin commands (default: op)



