lifestealXX
A lifesteal plugin made by Robin
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
lifestealXX
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
- java 21 required! - 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)