Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
LifeForge
The complete Lifesteal SMP experience for Paper 1.21.x — steal hearts, craft them, trade them, and fight to stay alive.
Overview
LifeForge is a full-featured Lifesteal SMP plugin: every kill steals a heart from your victim, every death costs you one, and when your hearts hit zero you are eliminated from the server. Hearts are a real economy — withdraw them into tradeable items, craft them, store them in chests, or bet them all in PvP. Eliminated players can be brought back with Revive Beacons, teams let you and your friends protect each other, and bounties put Vault money on the heads of your server's most wanted.
Everything is built for real production servers: all database access runs asynchronously (SQLite by default, MySQL for networks), every player-facing string lives in messages.yml with full MiniMessage and hex color support, and the entire feature set — starting hearts, caps, recipes, elimination mode, revive costs, limits — is configurable from config.yml. No NMS, no reflection, clean unregistering on disable.
Tested on Paper 1.21.4 and 1.21.11.
Features
Heart System
- Start with a configurable number of hearts (default 10), up to a configurable cap (default 20)
- Kill a player: steal a heart. Die: lose one. Both fully toggleable
- Kill broadcasts in chat, elimination broadcasts, and title screens — all customizable
- Live actionbar heart HUD with per-player toggle (
/hearts hud)
Heart Items
- Withdraw hearts into glowing custom player-head items (
/hearts withdraw) - Right-click a heart item to deposit it back into your health
- Heart items can be dropped, traded, stored in chests, or sold — hearts become the server currency of survival
- Fully configurable crafting recipe (shape + ingredients), or disable crafting entirely
- Anti-dupe protection: slot-precise item consumption plus a crafting-grid guard against duplication exploits
Elimination
- Reach 0 hearts and you're eliminated — choose the mode in config: SPECTATOR, TEMP_BAN (e.g. 3 days), or PERM_BAN
- Dramatic title screen and server-wide broadcast on elimination
- Optional: the killer takes the victim's head (with configurable drop chance)
Revival
- Revive Beacon item with its own configurable recipe
- Right-click to open the revive menu and bring an eliminated player back
- Revive costs are configurable: items required, Vault money required, or both
- Revived players return with a configurable heart count (default 5)
- Admins can revive offline players directly with a command
Teams & Alliances
- Create teams, invite friends, manage members (
/team) - Configurable team size cap
- Optional: allies never steal hearts from each other — no friendly-fire heart loss
Bounties (Vault)
- Place a Vault-money bounty on any player (
/bounty place <player> <amount>) - The killer claims the bounty automatically
- Configurable min/max bounty amounts
- Requires Vault + any economy plugin
Built-in Anti-Abuse
- Daily withdraw limit per player (default 10 hearts/day)
- Withdraw cooldown between withdrawals (default 60s)
- Minimum heart floor — you can never withdraw yourself to zero (default: keep at least 1)
- Anti-dupe item checks on every deposit
Admin Toolkit
/lifesteal set|add|removehearts for any player, online or offline/lifesteal reviveand/lifesteal eliminatefor manual moderation/lifesteal reload— reload config and messages without a restart- Separate admin permissions for every action
Commands
| Command | Aliases | Description | Permission |
|---|---|---|---|
/lifesteal |
/lf, /life |
Admin: set/add/remove hearts, revive, eliminate, reload | lifeforge.admin |
/hearts |
/heart, /lives |
Open the hearts menu, withdraw & deposit hearts, HUD toggle | lifeforge.hearts |
/team |
/teams, /ally, /allies |
Create and manage your team or alliance | lifeforge.team |
/bounty |
/bounties |
Place or view bounties (needs Vault economy) | lifeforge.bounty |
Admin subcommands: /lifesteal info|set|add|remove|revive|eliminate|reload
Permissions
| Permission | Default | Description |
|---|---|---|
lifeforge.* |
op | All LifeForge permissions |
lifeforge.admin |
op | Admin command access (children: .set, .add, .remove, .revive, .eliminate, .reload) |
lifeforge.player |
everyone | All player features (children below) |
lifeforge.hearts |
everyone | Use /hearts (menu, balance) |
lifeforge.withdraw |
everyone | Withdraw hearts into items |
lifeforge.deposit |
everyone | Deposit heart items (command and right-click) |
lifeforge.hud |
everyone | Toggle the actionbar heart HUD |
lifeforge.team |
everyone | Use teams |
lifeforge.bounty |
everyone | Use bounties |
lifeforge.revive |
everyone | Open the revive menu with a Revive Beacon |
PlaceholderAPI Placeholders
Registered automatically when PlaceholderAPI is installed (identifier: lifesteal).
| Placeholder | Description |
|---|---|
%lifesteal_hearts% |
Player's current hearts (formatted) |
%lifesteal_hearts_raw% |
Raw heart value |
%lifesteal_max% |
Server heart cap |
%lifesteal_rank% |
Player's position on the heart leaderboard |
%lifesteal_top_N_name% |
Name at position N on the leaderboard (cached) |
%lifesteal_top_N_hearts% |
Hearts at position N on the leaderboard |
%lifesteal_team% |
Player's team name (or "None") |
%lifesteal_eliminated% |
Whether the player is eliminated |
%lifesteal_bounty% |
Player's current bounty amount |
%lifesteal_hud% |
Player's HUD enabled state |
%lifesteal_withdraws_left% |
Withdrawals remaining today |
%lifesteal_withdraw_cooldown% |
Seconds until next withdraw is allowed |
%lifesteal_bar% |
Visual heart bar |
Installation
- Drop
LifeForge-1.0.0.jarinto your server'splugins/folder - (Optional) Install Vault + an economy plugin to enable bounties
- (Optional) Install PlaceholderAPI to enable placeholders in scoreboards, tab, etc.
Storage
LifeForge ships with SQLite and requires no database setup — the pooled, async storage creates plugins/LifeForge/data.db on first boot. For networks or high-traffic servers, switch storage.type to MYSQL in config.yml (HikariCP connection pool included). All data is UUID-based and stored asynchronously, so the main thread never blocks on I/O, and all pending writes are flushed cleanly on shutdown.


