All guides
Lifesteal

LifestealHearts

Items and recipes for Lifesteal: heart fragments to collect, special hearts with effects, custom recipes and drops from bosses and world chests.

Buy a license Paper, Spigot, Bukkit 1.20 – 1.21 · Java 17+

Installation

  1. Download the file from the customer area and copy it into your server's plugins folder.
  2. Start the server once: the plugin folder with config.yml is created.
  3. Paste your license under license: and restart the server.

Commands

Aliases: /lsh

CommandPermissionDescription
/lifestealhearts give <player> <item> [amount]lifestealhearts.adminGives fragment, heart or a special heart (e.g. legendary)
/lifestealhearts listlifestealhearts.adminLists items and recipes
/lifestealhearts reloadlifestealhearts.adminReloads configuration, items and recipes

Permissions

PermissionDefaultDescription
lifestealhearts.usetrueUse fragments and special hearts
lifestealhearts.crafttrueCraft the plugin's recipes
lifestealhearts.adminopEvery management command

Item names in the config

HEART is the LifestealCore heart, FRAGMENT the fragment, SPECIAL:<id> a special heart (e.g. SPECIAL:legendary). Anywhere you can also use a normal Minecraft material, such as DIAMOND_BLOCK.

Fragments

With per-heart fragments (4 by default) you craft a heart in the grid, or just right-click a fragment. Shift + right-click combines all the fragments you have.

Special hearts

Every entry under special-hearts is an item: hearts given, effects (name:level:seconds), sound, particles and announcement. Copy legendary, change the id and you have a new heart. They never go above the LifestealCore maximum.

Drops and reward crates

Mob drops only happen when a player kills the mob (require-player-kill). In world chests fragments appear with the drops.chests chance. To give them from a crate plugin (like RewardCrates) use the command lifestealhearts give {player} fragment 1.

Configuration files

config.yml
# Your license key (you received it privately from our Discord bot).
license: "PASTE-YOUR-LICENSE-HERE"

# Message language: "en" (English) or "it" (Italiano). Files are in /lang and can be edited freely.
language: en
# When true, each player sees the messages in their own game language (when a file for it exists).
use-client-language: true

# ------------------------------------------------------------
#  Item names used below:
#    HEART            = the heart item of LifestealCore
#    FRAGMENT         = the heart fragment of this plugin
#    SPECIAL:<id>     = a special heart from "special-hearts" (e.g. SPECIAL:legendary)
#    any material     = a normal Minecraft item (e.g. DIAMOND_BLOCK)
# ------------------------------------------------------------

fragment:
  material: RED_DYE
  name: "&#FF6B6B&lHeart Fragment"
  lore:
    - "&7Collect &f{per-heart} &7fragments to craft a &cHeart&7."
    - "&7Right-click with enough fragments to combine them."
  glow: true
  custom-model-data: 0
  # Fragments needed for one heart (1-9).
  per-heart: 4
  # Adds a crafting recipe: {per-heart} fragments in the crafting grid = 1 heart.
  craft-recipe: true
  # Right-click a stack with enough fragments to turn them into a heart directly.
  right-click-combine: true

special-hearts:
  legendary:
    material: HEART_OF_THE_SEA
    name: "<gradient:#FFD700:#FF4D4D>&lLegendary Heart</gradient>"
    lore:
      - "&7Right-click to gain &c+{hearts} ❤"
      - "&7and powerful effects."
      - ""
      - "&6✦ Legendary"
    glow: true
    custom-model-data: 0
    # Hearts given when used (they never go above the max of LifestealCore). 0 = only effects.
    hearts: 2
    # Potion effects: "name:level:seconds" (names from https://minecraft.wiki/w/Effect).
    effects:
      - "regeneration:2:10"
      - "absorption:2:120"
      - "strength:1:60"
    sound: "ui.toast.challenge_complete:1:1"
    particles: TOTEM_OF_UNDYING
    # Tell everyone when a player uses it.
    broadcast: true
  blessed:
    material: GOLDEN_CARROT
    name: "&#FFE29A&lBlessed Heart"
    lore:
      - "&7Right-click to gain &c+{hearts} ❤"
      - "&7and a short blessing."
    glow: true
    custom-model-data: 0
    hearts: 1
    effects:
      - "speed:1:30"
      - "resistance:1:30"
    sound: "entity.player.levelup:1:1.6"
    particles: HAPPY_VILLAGER
    broadcast: false

# Crafting recipes. Every recipe has a result, a shape (3 rows of up to 3 characters) and the ingredients.
recipes:
  heart:
    result: HEART
    amount: 1
    shape:
      - "DND"
      - "NTN"
      - "DND"
    ingredients:
      D: DIAMOND_BLOCK
      N: NETHERITE_INGOT
      T: TOTEM_OF_UNDYING
  legendary:
    result: SPECIAL:legendary
    amount: 1
    shape:
      - "HBH"
      - "BEB"
      - "HBH"
    ingredients:
      H: HEART
      B: NETHERITE_BLOCK
      E: ENCHANTED_GOLDEN_APPLE

drops:
  # Drops only when the mob is killed by a player.
  require-player-kill: true
  # Mob type names from https://minecraft.wiki/w/Java_Edition_data_values#Entities (e.g. WITHER).
  # amount: a number or a range like "2-4". chance: percentage (0-100).
  mobs:
    WITHER:
      item: FRAGMENT
      amount: "2-3"
      chance: 100
    ENDER_DRAGON:
      item: SPECIAL:legendary
      amount: "1"
      chance: 100
    WARDEN:
      item: FRAGMENT
      amount: "2-4"
      chance: 100
    ELDER_GUARDIAN:
      item: FRAGMENT
      amount: "1-2"
      chance: 100
  # Extra loot in naturally generated chests (dungeons, bastions, end cities...).
  chests:
    enabled: true
    # Loot tables that contain one of these texts (e.g. "chests/" = every chest, "end_city" = only end cities).
    loot-tables:
      - "chests/"
    item: FRAGMENT
    amount: "1-2"
    chance: 8