What is Lifesteal? Lifesteal is a competitive survival mechanic: killing another player steals one of their hearts. When a player’s hearts reach zero, they are eliminated (deathban or spectator mode, configurable).
Features
Heart Stealing – Gain a heart every time you kill another player; they lose one.
Heart Loss on Death – Dying (PvP or PvE) removes hearts, configurable minimum.
Eliminations & Deathbans – When hearts reach zero, players are eliminated (deathban or spectator mode toggle).
Custom Heart Items – Withdraw hearts as items; right‑click to consume and gain hearts.
Heart Drops or Auto-Give – Choose if hearts drop on death or go directly to the killer.
Highly Configurable – Change maximum hearts, revive cost, deathban time, messages, and more.
Persistent Heart Data – Supports flatfile and optional SQLite/MySQL (for cross‑server sync).
PvP vs PvE Customization – Separate heart loss and death messages for PvP vs PvE deaths.
/hearts giveall <amount> – Give everyone on the server extra hearts (useful for events).
/hearts reset <player> – Reset a player’s hearts to the default starting amount.
/hearts migrate <player1> <player2> – Transfer heart data from one player to another.
/hearts reloadmessages – Reload only the messages.yml file without restarting the plugin.
Configuration
Code (Text):
# Enable or disable deathban (ban on losing all hearts)
deathban: false
# Deathban duration in hours
deathban-time: 5
# Maximum number of hearts a player can have
maximum-hearts: 20
# Allow players to withdraw hearts as items
withdraw-command: true
# Drop a heart item on death if the killer is at max hearts (otherwise, give directly to killer)
drop-heart-on-death: false
# Allow players to use the /revive command
revive-command: true
# Number of hearts required to revive a deathbanned player
revive-cost: 5
# Number of hearts a revived player will have after being revived
hearts-on-revive: 1
Messages Configuration:
Code (Text):
plugin-enabled: '&aLifeSteal plugin has been enabled!'
plugin-disabled: '&cLifeSteal plugin has been disabled!'
plugin-reloaded: '&aConfiguration reloaded successfully!'
heart-used: '&aYou gained an extra heart! &7(Current: %hearts%/%maxhearts%)'
max-hearts-reached: '&cYou already have the maximum amount of hearts!'
withdraw-success: '&aYou withdrew a heart into an item.'
cannot-withdraw-last: '&cYou cannot withdraw your last heart!'
heart-item-name: '&c❤ Heart'
heart-item-lore: '&7Right-click to gain a heart.'
death-message: '&c%victim% was killed by %killer% and lost 1 heart. &7(%hearts%/%maxhearts%
remaining)'
elimination-kick: '&4You have been eliminated! You ran out of hearts.'
elimination-broadcast: '&4☠ %player% has been eliminated from the server!'
admin-elimination: '&c%player% was eliminated by an admin.'
admin-kick: '&cYou were eliminated by an administrator.'
revive-success: '&a%player% has been revived with %hearts% hearts!'
revive-player: '&aYou have been revived with %hearts% hearts!'
hearts-set: '&aSet %player%''s hearts to %hearts%.'
hearts-set-target: '&eYour hearts were set to %hearts% by an admin.'
eliminate-success: '&a%player% has been eliminated.'
undeathban-success: '&a%player%''s deathban has been removed.'
no-permission: '&cYou don''t have permission to do that!'
player-not-found: '&cThat player could not be found.'
invalid-number: '&cThat is not a valid number.'
invalid-heart-amount: '&cHeart count must be between 1 and %max%.'