Reward your PvP gods with an economy plugin that uses player health as a status of wealth! Lifesteal inspired!
Ever wanted to use hearts as a currency?
Ever wanted players to bleed power, fight for hearts, and flex HP like an economy stat?
Welcome to LifeEconomy — a lifesteal-inspired heart economy system for SMPs where:
Turn your server into a true high-stakes SMP economy where players literally grind blood for wealth.
LifeEconomy is a Core-plugin, it's features are limited if installed by itself. To enhance your LifeEconomy experience, consider adding these add-ons to your server.
| Placeholder | Description | Example Output |
|---|---|---|
%life_health% |
Shows the player's raw health value (internal HP, not hearts) | 36.0 |
%life_hearts% |
Shows the player's hearts count | 18 |
%life_hearts_formatted% |
Displays hearts with a symbol & multiplier | ❤ x18 |
%life_percentage% |
Player health as a percentage of default (20 HP) | 180% |
%life_min_health% |
Minimum health configured in the plugin | 2.0 |
%life_can_lose% |
How many hearts the player can lose before reaching minimum | 16 |
%life_is_min_health% |
Returns true if the player is at minimum health |
false |
%life_bar% |
Heart bar UI across multiple lines (10 hearts per row, MiniMessage → Legacy converted)** | ❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ |
%life_rank% |
Placeholder for upcoming leaderboard support | Coming soon |
%life_top_1% |
Placeholder for upcoming top player name support | Coming soon |
%life_top_1_hearts% |
Placeholder for upcoming top player hearts support | Coming soon |
Note:
%life_bar%supports multiline hearts, so looks great in scoreboards & GUIs that support newlines.
database: #use mysql to sync hearts across different servers on a proxy network
type: sqlite # or "mysql" use sqlite if you haven't set up a mysql server
# SQLite options
file: hearts.db
# MySQL options (used only if type = mysql)
host: localhost
port: 3306
database: life_economy
username: root
password: ""
useSSL: false
pool-size: 10
cost: #1 heart = 2.0
minimum-health: 2.0 #Minimum player health, no death will cause health to go below this (I suggest not changing this, 2.0 is 1 heart)
random-death: 2.0 #Just deletes 1 heart when a player dies from any other causes that's not a player.
death-to-player: 2.0 #1 heart cost if they die to a player (gets transferred to killer)
settings: #hearts-display appear on damage
heal-on-kill: true
hearts-display: ACTION_BAR #type none if you don't want a hearts display. ACTION_BAR is the only supported display for now
display-timeout: 4 #Seconds before display disappears
messages:
no-hearts-lost: "<red>You didn't lose any hearts.</red>"
no-hearts-gained: "<red>You didn't gain any hearts.</red>"
pay: "<gray>You gave <gold>{target}</gold><green> {amount} <red>health"
player-not-found: "<red>That player does not exist or is not online!"
pay-more-than-minimum: "<red>Cannot send if it results in you having less than {minimum} health!"
pay-more-than-health: "<red>You're trying to pay more than what you have!"~~~~
All /life commands - (life.admin)
/life give - Give health
/life take - Remove health
/life set - Set health
/life reload - Reload config
/health pay - Give another player your health. (life.health)
⚠️ 1 heart = 2 health points.
Create heart-based gameplay systems:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.jollyjoee</groupId>
<artifactId>LifeEconomy</artifactId>
<version>[1.0,)</version> <!-- always use newest >= 1.0 -->
<scope>provided</scope>
</dependency>
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
compileOnly 'com.github.jollyjoee:LifeEconomy:[1.0,)'
}
import com.jolly.lifeEconomy.LifeEconomyAPI;
import com.jolly.lifeEconomy.LifeEconomy;
import org.bukkit.entity.Player;
public class Example {
public static LifeEconomyAPI api;
@Override
public void onEnable() {
if (!Bukkit.getPluginManager().isPluginEnabled("LifeEconomy")) {
getLogger().severe("❌ LifeEconomy not found! Disabling plugin.");
Bukkit.getPluginManager().disablePlugin(this);
return;
}
LifeEconomy lifeEconomyPlugin = (LifeEconomy) getServer().getPluginManager().getPlugin("LifeEconomy");
if (lifeEconomyPlugin == null) {
getLogger().severe("LifeEconomy is not installed!");
getServer().getPluginManager().disablePlugin(this);
return;
}
api = lifeEconomyPlugin.getAPI();
if (api == null) {
getLogger().severe("Failed to get LifeEconomy API instance!");
getServer().getPluginManager().disablePlugin(this);
return;
}
getLogger().info("✅ Successfully hooked into LifeEconomy API!");
}
}
// +1 heart and heal
api.giveHealth(player, 2.0, true);
// remove half a heart
api.takeHealth(player, 1.0);
// set exact health
api.setHealth(player, 40.0);
// get health
double health = api.getHealth(player)
Unlike typical lifesteal plugins, this is a true health-based economy system designed to expand — not imitate.
Competitive. Scarce. Grindable. Tradable.
Heart wealth = power.
Let the blood economy rise. 🩸👑