Lifesteal2 is a fully configurable lifesteal plugin that adds custom heart mechanics, revives, and crafting recipes to your server. Players can gain, lose, withdraw, and trade hearts, even revive fallen players using the unique Revive Tool and GUI.
Lifesteal2: The Ultimate Lifesteal Plugin
Lifesteal2 is a modern, performance-focused, and fully configurable lifesteal system for Minecraft servers.
It includes advanced heart mechanics, configurable items, custom GUI systems, PlaceholderAPI support, and complete customization through config and message files.
Every system can be tuned to match any SMP, factions, or survival setup.
Fully Configurable
All mechanics, recipes, limits, and options are stored in the configuration file.
You can toggle natural heart loss, limit maximum hearts, adjust revive behavior, and fine-tune item crafting or GUI settings easily.
Heart Item – crafted using your configurable recipe, adds one heart when right-clicked.
Revive Tool – opens an interactive revive GUI listing players who lost all hearts, allowing them to be brought back with a configurable amount of hearts.
The revive menu lists all players banned for losing their last heart.
Each appears with their player head, hover tooltip, and click-to-revive function.
Supports multiple pages with configurable slot counts.
The system can also be disabled or simplified through config.
Both Heart and Revive Tool recipes are fully editable in the configuration file.
Recipes are written left-to-right, top-to-bottom, corresponding to a 3x3 crafting table.
Every player’s heart count and ban status are saved securely and persist through restarts.
Data is stored in playerdata.yml within the plugin folder.
All plugin messages are stored in messages.yml.
This includes every chat message, help section, and even leaderboard formatting—giving complete control over how the plugin looks and feels.
The plugin includes built-in placeholders for use in scoreboards, sidebars, or GUIs:
%lifesteal2_hearts% — shows the player’s current heart count
%lifesteal2_is_banned% — shows if a player is lifebanned
%lifesteal2_rank% — shows their leaderboard position
Configurable Heart Limits and Punishments
Enable or disable maximum heart limits.
Set the maximum allowed heart count.
Define punishments when a player reaches zero hearts, including permanent or timed bans and custom commands.
When a player kills another using indirect methods (such as end crystals or TNT), the kill is still correctly attributed to the attacker whenever possible.
Check top players with /heartleaderboard or verify plugin functionality with /statuslifesteal.
Leaderboard layout can be customized in messages.yml.
When the server starts, the console checks for new Lifesteal2 versions and notifies you if an update is available.
All commands include tab completion for players and arguments.
Commands
Command Description Permission
/hearts [player] Show your or another player’s hearts lifesteal.hearts, lifesteal.hearts.others
/giveheart Give hearts to a player lifesteal.giveheart
/takehearts Take hearts and receive them as items lifesteal.takehearts
/sethearts Set a player’s exact heart count lifesteal.sethearts
/withdrawhearts Withdraw your hearts as Heart items lifesteal.withdrawhearts
/withdrawhearts Withdraw hearts from another player (admin only) lifesteal.withdrawhearts.others
/heartrecipe Add Heart recipe to recipe book lifesteal.heartrecipe
/revivetoolrecipe Add Revive Tool recipe to recipe book lifesteal.revivetoolrecipe
/statuslifesteal Check plugin status and errors lifesteal.status
/heartleaderboard Show the heart leaderboard lifesteal.leaderboard
/helplifesteal List all available commands lifesteal.helplifesteal
Example Config
natural-death-drops-heart: false
max-hearts:
enabled: true
limit: 20
revive:
hearts-after-revive: 3
gui-enabled: true
gui-size: 54
punishment:
type: "ban"
duration: "7d" # or "permanent"
crafting:
heart-recipe:
- DIAMOND
- NETHERITE_INGOT
- DIAMOND
- EMERALD_BLOCK
- NETHER_STAR
- EMERALD_BLOCK
- DIAMOND
- NETHERITE_INGOT
- DIAMOND
revive-recipe:
- NETHERITE_INGOT
- DIAMOND
- NETHERITE_INGOT
- ENCHANTED_GOLDEN_APPLE
- NETHER_STAR
- ENCHANTED_GOLDEN_APPLE
- NETHERITE_INGOT
- DIAMOND
- NETHERITE_INGOT
(If the generated config differs from this example, it is due to markdown formatting.)
Built for Minecraft 1.21 and higher
Requires Java 17 or higher
Compatible with Spigot, Paper, and Purpur
Player data stored in /plugins/Lifesteal2/playerdata.yml
Config regenerates automatically if deleted
Supports PlaceholderAPI out of the box
Permissions
lifesteal.hearts
lifesteal.hearts.others
lifesteal.giveheart
lifesteal.takehearts
lifesteal.sethearts
lifesteal.withdrawhearts
lifesteal.withdrawhearts.others
lifesteal.heartrecipe
lifesteal.revivetoolrecipe
lifesteal.status
lifesteal.leaderboard
lifesteal.helplifesteal
Developed by waffleboiii