❤️ EzLifesteal ❤️ Seasons - Top hologram - Anti smurf - Auto ban icon

❤️ EzLifesteal ❤️ Seasons - Top hologram - Anti smurf - Auto ban -----

NEW advanced Lifesteal plugin with all of your expected Lifesteal features



EzLifesteal
EzLifesteal is a configurable Lifesteal plugin for Paper, Spigot, Folia, and Bukkit servers. It ships with flexible heart rules, fast storage, hologram/scoreboard overlays, PlaceholderAPI hooks, and built-in smurf protection.

Highlights
  • Works with Paper 1.21.10 (Java 21) and stays friendly with Paper, Spigot, Folia, and Bukkit. The jar includes the `folia-supported` marker.
  • Saves player data asynchronously to YAML files or MySQL so leaderboards, profiles, and shutdown saves stay smooth.
  • Control hearts per world: set default, minimum, and maximum hearts, adjust kill rewards and death penalties, pick zero-heart behaviour, allow or block worlds, make per-world overrides, and let mobs drop hearts with per-entity permissions.
  • Optional kill streak rewards can hand out money, run console commands, give items, and broadcast wins when players hit streak milestones, with Vault support for economy payouts.
  • Built-in overlays show action-bar or boss-bar updates. `/lifesteal top` leaderboards, the hologram, and PlaceholderAPI placeholders share live standings anywhere.
  • `/lifesteal hologram place` drops a self-updating leaderboard that survives restarts and can be cleared with one command. The scoreboard wildcard (`lifesteal.scoreboard.*`) makes it easy to hand out place/remove access.
  • Season scheduling handles heart resets automatically. Use a timer or set start and end dates, repeat seasons if you want, and send reminder broadcasts. `/lifesteal season` shows the countdown.
  • Smurf detection watches for players farming the same target or rotating killers, keeps history GUIs ready, and only alerts trusted staff.
  • `admin.yml` lists staff by ops, permission nodes, UUIDs, or names, chooses if admins bypass heart gain or loss, and decides whether smurf alerts stay admin-only.
  • Translate player messages quickly with built-in English and Dutch files, and add your own flavour through `messages.yml` overrides.
  • `/lifesteal` staff commands make it easy to add, remove, reset, revive, or reset all hearts without touching storage files.

[​IMG]

Storage & reliability
  • Storage tasks run on their own thread so slow disks or databases never freeze the main server.
  • YAML mode saves each player to `plugins/EzLifesteal/data/players/<uuid>.yml` and upgrades old `players.yml` data the first time it loads.
  • MySQL mode creates its table on startup (`uuid`/`hearts`) and uses `ON DUPLICATE KEY UPDATE` so repeat saves stay safe.
  • Use `/lifesteal reload` to refresh configuration, messages, admin rules, storage backends, overlays, and PlaceholderAPI hooks without restarting.

Season cadence & smurf defence

[​IMG]

  • Set a season length with `length-days` or choose exact `start` and `end` times. Turn on `recurring` to loop the schedule automatically.
  • Send reminder broadcasts before resets and show the remaining time with `/lifesteal season`.
  • Smurf detection logs kills per killer and victim, watches for rotating killer rings, saves alert and kill history, and lets you exempt trusted players.
  • Give moderators `lifesteal.alert` and edit `smurf.yml` to tweak thresholds or exempt trusted UUIDs.

Requirements
  • Java 21 runtime (matches current Paper 1.21.10 requirements).
  • Paper, Spigot, Folia, or Bukkit 1.21.10 or newer.
  • Optional: PlaceholderAPI for placeholders, MySQL 8+ for database storage.
  • Optional: Vault plus an economy provider for kill streak currency rewards.

Quick start
  1. Place the jar in your server's `plugins` folder and restart the server.
  2. Choose `YAML` (default) or `MYSQL` storage in `storage.yml`. Set the default language in `config.yml`. Adjust heart and world rules in `lifesteal.yml` and tweak overlays or seasons in `features.yml`.
  3. Review `admin.yml` to decide who counts as staff, whether they bypass heart gain or loss, and who receives smurf alerts.
  4. Use `/lifesteal reload` after configuration changes and give your staff the permissions listed below.
  5. Run `/lifesteal test <kill|death>` on a staging server to check kill and death flows before you go live.

Commands & permissions
Command Description Permission
/lifesteal Show your stored heart total (players) or run sub-commands. lifesteal.command.base
/lifesteal hearts <player> View any player's saved hearts, even if they are offline. lifesteal.manage.view
/lifesteal set <player> <hearts> Force a player's heart total within the configured bounds. lifesteal.manage.modify
/lifesteal add <player> <hearts> Give a player extra hearts without exceeding the configured maximum. lifesteal.manage.modify
/lifesteal remove <player> <hearts> Remove hearts while respecting the configured minimum floor. lifesteal.manage.modify
/lifesteal reset <player> Restore a player's hearts to the configured default. lifesteal.manage.modify
/lifesteal revive <player> Restore default hearts and pardon any bans for the player. lifesteal.manage.modify
/lifesteal resetall Reset every stored profile to the default hearts asynchronously. lifesteal.manage.resetall
/lifesteal transfer <player> <amount> Send hearts to another player while respecting the minimum heart safety floor. lifesteal.transfer
/lifesteal top [page] Display the hearts leaderboard with pagination and PlaceholderAPI support. lifesteal.top
/lifesteal hologram <place|remove> Place or remove the auto-updating hologram leaderboard at your location. lifesteal.scoreboard.place / lifesteal.scoreboard.remove
/lifesteal season Check the time remaining until the next scheduled heart reset. lifesteal.season
/lifesteal smurf Open the smurf-farming investigation GUI with recent alerts and kill history. lifesteal.smurf.manage
/lifesteal reload Reload configuration, messages, admin rules, storage backends, and overlays. lifesteal.reload
/lifesteal test <kill|death> Simulate kills or deaths to validate lifesteal settings on a staging server. lifesteal.test


Configuration snapshots
Code (Text):

# config.yml
# Supported languages: "en", "nl"
language: en

# storage.yml
type: YAML
mysql:
  host: localhost
  port: 3306
  database: lifesteal
  username: root
  password: password
  use-ssl: false
  table: lifesteal_players

# lifesteal.yml
global-enabled: true
default-hearts: 10.0
min-hearts: 1.0
max-hearts: 40.0
apply-health-scale: false
health-scale: 20.0
hearts-per-kill: 1.0
hearts-lost-on-death: 1.0
ban-when-zero-hearts: false
zero-heart-ban-message: "You have run out of hearts."
zero-heart-kick-message: "You have run out of hearts."
enabled-worlds: []
disabled-worlds: []
world-overrides: {}
mob-rewards: {}
kill-streaks:
  enabled: false
  reset-on-death: true
  rewards: {}

# features.yml
action-bar:
  enabled: true
  mode: ACTION_BAR
  update-interval-ticks: 40
  message: "&c❤ %hearts% &7hearts"
  enabled-worlds: []
  disabled-worlds: []
  boss-bar:
    color: RED
    overlay: PROGRESS
hologram:
  update-interval-ticks: 600
  max-entries: 10
  location: {}
season:
  enabled: false
  start: 0
  end: 0
  recurring: false
  length-days: 30
  check-interval-minutes: 60
  broadcast-message: "&7A new season has begun! Hearts have been reset."
  reminder-minutes: []
  reminder-message: "&7The season will reset in &c%time%&7."
  last-reset: 0
  next-reset: 0
 
Admin rules (`admin.yml`)
Code (Text):

enabled: true
treat-ops-as-admin: true
permission-node: lifesteal.admin
allowed-uuids: []
allowed-names: []
bypass-heart-loss: true
bypass-heart-gain: true
restrict-smurf-alerts-to-admins: false
 
Admin bypass & testing
  • Staff listed in `admin.yml` skip heart gains and losses when `bypass-heart-gain` and `bypass-heart-loss` stay enabled, so moderators can watch gameplay without losing progress.
  • Switch those values to `false` (or remove yourself from the admin list) before testing lifesteal flows, or kill/death simulations, duels, and streak rewards will skip admins.
  • Turn the bypass back on after testing so daily staff checks keep working without unwanted penalties.

Smurf detection (`smurf.yml`)
Code (Text):

enabled: true
same-victim-threshold: 3
time-window-minutes: 15
notify-permission: lifesteal.alert
history-limit: 50
kill-history-limit: 120
exempted-players: []
 
Configuration presets
  • Casual SMP: Keeps fights exciting without scaring casual players. Raises the minimum hearts, gives one heart per kill, and disables zero-heart bans so everyone can keep playing.
    Code (Text):

    # lifesteal.yml
    default-hearts: 12.0
    min-hearts: 6.0
    max-hearts: 30.0
    hearts-per-kill: 1.0
    hearts-lost-on-death: 1.0
    ban-when-zero-hearts: false

    # features.yml
    action-bar:
      enabled: true
    season:
      enabled: false
     
  • Competitive season: Built for organised leagues. Enables the season scheduler, lowers the max heart cap, and speeds up reminders as the reset gets closer.
    Code (Text):

    # lifesteal.yml
    default-hearts: 10.0
    min-hearts: 4.0
    max-hearts: 24.0
    hearts-per-kill: 1.0
    hearts-lost-on-death: 1.0
    ban-when-zero-hearts: true

    # features.yml
    season:
      enabled: true
      length-days: 14
      reminder-minutes: [1440, 60, 15, 5, 1]
      broadcast-message: "&eSeason reset! Hearts are refreshed for everyone."
     
  • Hardcore grind: Every fight is dangerous. Players lose two hearts on death, gain half a heart on kills, and get banned at zero hearts, so teams must play carefully.
    Code (Text):

    # lifesteal.yml
    default-hearts: 8.0
    min-hearts: 1.0
    max-hearts: 16.0
    hearts-per-kill: 0.5
    hearts-lost-on-death: 2.0
    ban-when-zero-hearts: true
    world-overrides:
      world_nether:
        hearts-per-kill: 0.25
        hearts-lost-on-death: 3.0

    # features.yml
    season:
      enabled: false
     

PlaceholderAPI
  • Install PlaceholderAPI alongside EzLifesteal. The expansion registers automatically and caches lookups briefly to stay responsive.
  • Player-centric placeholders: %ezlifesteal_hearts% / %ezlifesteal_current_hearts% (stored hearts), %ezlifesteal_default_hearts%, %ezlifesteal_min_hearts%, and %ezlifesteal_max_hearts%.
  • Leaderboard placeholders: %ezlifesteal_top_<position>_hearts%, %ezlifesteal_top_<position>_current_hearts%, %ezlifesteal_top_<position>_name%, and %ezlifesteal_top_<position>_uuid%.

Under the hood
  • Hearts stay saved across restarts, reloads, and world switches, and reapply instantly on join, quit, PvP, or admin tweaks.
  • Health scaling can be toggled separately from heart totals so you can keep the vanilla HUD or use scaled hearts.
  • Background storage work and scheduled overlay updates keep the main thread responsive even during big migrations or resets.
  • Mob rewards support fractional payouts, per-entity permissions, and world allow/deny lists so you can shape lifesteal progress everywhere.

Need support or want a new feature? Join the discussion or Discord server and tell us what to add next!
Resource Information
Author:
----------
Total Downloads: 16
First Release: Oct 26, 2025
Last Update: Nov 3, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings