lifestealXX
A lifesteal plugin made by Robin
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)