LifeStealZ

LifeStealZ - The Ultimate LifeSteal SMP Plugin!

330,63k

LifeStealZ

LifeStealZ Banner

---

paper

purpur

LifeStealZ is a lifesteal SMP plugin, that allows you to steal hearts from other players, when you kill them. If a player has no more hearts, he is eliminated. You can craft additional hearts or a revive crystal. With this crystal, you can bring back eliminated teammates.

LifeStealZ offers a great amount of admin tools and is highly customizable. You can change every message and change everything about the custom items.

<br>

---

---

<br>

FeaturesBanner

Main Features

* ✅ Stealing hearts * ✅ Withdraw hearts * ✅ Customizable heart items * ✅ Custom crafting recipes * ✅ Revive item * ✅ Maximal and starter hearts * ✅ Disable totems * ✅ Disable crystal pvp * ✅ Ingame recipe viewer * ✅ PlaceholderAPI placeholders * ✅ Custom WorldGuard flags * ✅ Admin commands * ✅ HEX colors and gradients support * ✅ SQLite and MySQL support

Languages

* English (`en-US`) * German (`de-DE`) * Spanish (`es-ES`) * French (`fr-FR`) * Czech (`cs-CZ`) * Polish (`pl-PL`) * Vietnamese (`vi-VN`) * Chinese (Simplified) (`zh-CN`) * Russian (`ru-RU`) * Dutch (`nl-NL`) * Portuguese (`pt-BR`) * Japanese (`ja-JP`)

<br>

---

PermissionsBanner

- lifestealz.maxhearts.[amount] - Allow to reload the plugin - lifestealz.maxhearts.[amount] - Allow to set the amount of hearts, a player has - lifestealz.maxhearts.[amount] - Allow to give custom items to a player - lifestealz.maxhearts.[amount] - Allows to eliminate players with the `/eliminate` command - lifestealz.maxhearts.[amount] - Allow a player to revive another player with the `/revive` command - lifestealz.maxhearts.[amount] - Allow a player to bypass the revive limit - lifestealz.maxhearts.[amount] - Allow a player to withdraw hearts (true by default) - lifestealz.maxhearts.[amount] - Allow a player to revive others with a revive crystal (true by default) - lifestealz.maxhearts.[amount] - Allow a player to view the custom recipes (true by default) - lifestealz.maxhearts.[amount] - Allow a player to access the help menu (true by default) - lifestealz.maxhearts.[amount] - Allow a player to view the amount of hearts (`/hearts`) they have (true by default) - lifestealz.maxhearts.[amount] - Set the max hearts for a player. This overwrites the maxHearts in the config

<br>

---

ConfigBanner

The conifuration is split into multiple files located at `plugins/LifeStealZ/`:

config.yml

```yml

__ _____ ______

| | ()/ | / ____| | | | |___ /

| | | | ___ | (___ | |_ ___ __ _| | / /

| | | | / ___ | __/ / ` | | / /

| |____| | || __/ ____) | || __/ (_| | | / /__

|______||| ___| |_____/ _____|__,|| /_____|

=== COLOR CODES ===

This plugin supports old color codes like: &c, &l, &o, etc.

It also supports MiniMessage, a more advanced way to format messages:

https://docs.advntr.dev/minimessage/format.html

With MiniMessage, you can add HEX colors, gradients, hover and click events, etc.

=== GENERAL SETTINGS ===

If set to true, LifeStealZ will check for updates and let you know if there's a newer version

checkForUpdates: true

Set the language to any code found in the "lang" folder (don't add the .yml extension)

You can add your own language files. Use https://github.com/KartoffelChipss/LifeStealZ/tree/main/src/main/resources/lang/en-US.yml as a template

If you want to help translating the plugin, please refer to this article: https://lsz.strassburger.dev/contributing/localization

| en-US | de-DE | es-ES | fr-FR | cs-CZ | vi-VN | zh-CN | pl-PL | nl-NL | ru-RU

lang: "en-US"

=== HEART SETTINGS ===

The amount of hearts a player has when joining for the first time

startHearts: 10

The maximal amount of hearts, a player can have

You can also set a per player limit using the lifestealz.maxhearts.[amount] permission or a per item limit in the items.yml file

maxHearts: 20

The amount of hp a player should have after getting revived

reviveHearts: 1

The amount of hearts the killer should gain and the victim should lose

heartsPerKill: 1

The amount of hearts a player should lose when dying naturally

heartsPerNaturalDeath: 1

The minimal amount of hearts. If a player gets to this amount of hearts, they will be eliminated.

PLEASE ONLY CHANGE IF YOU KNOW WHAT YOU ARE DOING!

minHearts: 0

This option will enforce the heart limit on admin commands like /lifestealz hearts <add, set> <player> <amount>

Note that this

enforceMaxHeartsOnAdminCommands: false

The custom items that should be used for the following scenarios (Must be an id from the items.yml)

heartItem:

This item will be used for anything that is not listed below (mostly legacy)

default: "defaultheart"

This item will be given when a user withdraws a heart

withdraw: "defaultheart"

This item will be dropped when a player is killed by another player and "dropHeartsPlayer" is enabled

kill: "defaultheart"

This item will be dropped when a player is killed by natural causes and "dropHeartsNatural" is enabled

naturalDeath: "defaultheart"

This item will be dropped if a player is killed, the killer is still on cooldown and "heartGainCooldown.dropOnCooldown" is enabled

heartGainCooldown: "defaultheart"

This item will be dropped if a player is killed, the killer has reached the max amount of hearts and "dropHeartsIfMax" is enabled

maxHearts: "defaultheart"

=== HEART BEHAVIOR SETTINGS ===

If hearts should be dropped when killed by player

dropHeartsPlayer: false

If hearts should be dropped when killed naturally

dropHeartsNatural: true

If a heart should be dropped, when the killer already has the max amount of hearts

dropHeartsIfMax: true

If a player should lose a heart, when dying to hostile mobs or falldamage, lava, etc

looseHeartsToNature: true

If a player should lose a heart, when being killed by another player

looseHeartsToPlayer: true

Whether it should be announced, when a player got eliminated (has no more hearts)

announceElimination: true

Allows players to withdraw a heart, even if they only have one left

allowDyingFromWithdraw: true

If a player should also heal the appropriate amount of hearts, when using a heart item

healOnHeartUse: false

If the totem effect should be played, when you use a heart

playTotemEffect: false

The time you have to wait, before you can use another heart in Milliseconds

heartCooldown: 0

How many times a player can be revived. Set to -1 to make it infinite

maxRevives: -1

=== Disabling Features ===

If the use of totems of undying should be prevented

preventTotems: false

If crystalpvp should be disabled

preventCrystalPVP: false

If the use of respawn anchors in the overworld should be prevented

preventRespawnAnchors: false

If the use of beds in the nether and end should be prevented

preventBeds: false

If the use of custom items in item frames should be prevented

It is recommended to leave this enabled, as people may be able to duplicate items otherwise

preventCustomItemsInItemFrames: true

=== Extensive Customization ===

Only disable this option if you want to add custom commands on elimination and don't want the player to get banned

disablePlayerBanOnElimination: false

If the killer should gain a heart on elimination

heartRewardOnElimination: true

Execute custom commands on events:

You can use &player& to insert the player name

For example: tempban &player& banreason 1d

eliminationCommands:

- "say &player& got eliminated"

- "niceCommandtwo"

These commands will be executed when a player uses a heart item

heartuseCommands:

- "say &player& used a heart item"

These commands will be executed when a player has been revived

reviveuseCommands:

- "say &player& revived &target&"

These commands will be executed when a player starts reviving another player using a revive beacon

reviveStartCommands:

- "broadcast &player& started reviving &target& at &location&"

gracePeriod:

If a grace period should be enabled

enabled: false

The time in seconds, the grace period should last

duration: 60

If the end of the grace period should be announced

announce: true

If a sound should be played, when the grace period ends

playSound: true

Should a player be able to take damage from players during the grace period

damageFromPlayers: false

Should a player be able to deal damage to players during the grace period

damageToPlayers: false

Should a player be able to use hearts during the grace period

useHearts: false

Should a player be able to loose hearts during the grace period (if set to false, the killer will also not gain a heart)

looseHearts: false

Should a player be able to gain hearts during the grace period

gainHearts: false

Custom commands to be executed when the grace period starts

startCommands:

- "say The grace period for &player& has started"

Custom commands to be executed when the grace period ends

endCommands:

- "say The grace period for &player& has ended"

heartGainCooldown:

A cooldown for how often people can gain a heart.

enabled: false

How long the cooldown should be in Milliseconds

cooldown: 120000

Drops the heart on the ground if a player kills someone, while still on cooldown

dropOnCooldown: true

Prevents picking up hearts from the groun while on cooldown

preventPickup: true

antiAlt:

If the anti alt system should be enabled

enabled: true

If possible alt kill attempts should be logged

logAttempt: true

If possible alt kill attempts should be prevented

preventKill: false

If a message should be sent to the player, when an alt kill attempt is detected

sendMessage: false

Add custom comamnds, to be executed when a possible alt kill attempt is detected

You can use &player& to insert the player name (commands are executed for both players)

commands:

- "say Please don't kill alts"

- "ban &player& 1h"

webhook:

If a webhook should be sent, when a player is eliminated

elimination: false

If a webhook should be sent, when a player is revived

revive: false

The URL of the webhook

url: "" ```

storage.yml

```yml

=== Storage ===

The type of storage to use. You have the following options:

"SQLite", "MySQL", "MariaDB"

type: "SQLite"

This section is only relevant if you use a MySQL database

host: "localhost" port: 3306 database: "lifestealz" username: "root" password: "password" ```

items.yml

```yml

=== Custom Items ===

Here you can modify everything about the custom items

You can change which item is dropped on death in the main config.yml

defaultheart: # <- This is the item id that can be used in recipes and for permissions

This is the name of the item that is displayed in the inventory

name: "&cHeart"

The lore is the description of the item that is displayed in the inventory

lore: - "&7Rightclick to use"

- "This would be a second line"

- "And this possibly a third line"

The material is the item that is displayed in the inventory (Find all materials here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html)

material: "NETHER_STAR"

If set to true, the enchant glint will be applied to the item

enchanted: false

Custom item type for the item. You can use:

- "heart" for a heart item

- "revive" for a revive item

- "revivebeacon" for a revive beacon item -> This item must actually be a beacon to work!

- "none" for a custom item that can be used for crafting and can be used as a normal item (e.g. if it is an enderpearl it still can be thrown)

- "non-usable" for a custom item that can be used for crafting and cannot be used as a normal item (e.g. if it is an enderpearl it cannot be thrown)

customItemType: "heart"

--- Heart Item Settings --- (only relevant if customItemType is "heart")

When customItemType is "heart", this value is used to determine how many hearts the item gives

customHeartValue: 1

The minimum amount of hearts a player must have to use this item (only relevant if customItemType is "heart")

minHearts: 0

The maximum amount of hearts a player can have to use this item (-1 for infinite) (only relevant if customItemType is "heart")

maxHearts: -1

--- End of Heart Item Settings ---

If this item requires a permission to be used (lifestealz.item.defaultheart)

requirePermission: false

true if this item should be craftable

craftable: true recipes:

You can add as many recipes as you want

1:

Every item represents one slot in the crafting table

The first item in a row is the left most item in the crafting table

If you want a slot to be blank, use 'AIR' or 'empty'

If you want to use a simple material, use the material name (e.g. "DIAMOND_BLOCK"). Find all materials here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html

If you want to use other custom item (like hearts) use the custom item name (e.g. "defaultheart")

If you want to use block or item tags, use the tag with a '#' in front (e.g. "#logs" or "#wool")

rowOne: - "GOLD_BLOCK" - "GOLD_BLOCK" - "GOLD_BLOCK" rowTwo: - "OBSIDIAN" - "NETHER_STAR" - "OBSIDIAN" rowThree: - "DIAMOND_BLOCK" - "DIAMOND_BLOCK" - "DIAMOND_BLOCK"

If the item should be burnable (Not destroyed by fire, lava, explosions, cactus, etc.)

invulnerable: false

If the item should despawn after laying on the ground for 5 minutes

despawnable: true

If this list is empty ("[]"), the item is available in all worlds

If you want to limit the item to specific worlds, add the world names here

whitelistedWorlds: [] sound: enabled: true sound: ENTITY_PLAYER_LEVELUP # Find all sounds here: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html volume: 1.0 pitch: 1.0

revive: name: "&cRevive Beacon" lore: - "&7Place down to use"

The material has to be a beacon if customItemType is "revivebeacon"

material: "BEACON" enchanted: true customItemType: "revivebeacon"

--- Revive Beacon Settings --- (only relevant if customItemType is "revivebeacon")

The time in seconds it takes to revive a player

reviveTime: 30

If players should be able to break the beacon while reviving, interrupting the revive process

allowBreakingBeaconWhileReviving: true

The material around the beacon (AIR for no material)

decoyMaterial: "RED_STAINED_GLASS"

If the revive beacon should be surrounded by enchant particles

showEnchantParticles: true

If the revive beacon should show a laser while reviving

showLaser: true

The material of the inner part of the beacon laser

innerLaserMaterial: "RED_GLAZED_TERRACOTTA"

The material of the outer part of the beacon laser

outerLaserMaterial: "RED_STAINED_GLASS"

If the revive beacon should show a particle ring while reviving

showParticleRing: true

The color of the particle ring

possible values: WHITE, GRAY, RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE, PINK

particleColor: "RED"

--- End of Revive Beacon Settings ---

requirePermission: false # (lifestealz.item.revive) craftable: true recipes: 1: rowOne: - "DIAMOND" - "BEACON" - "DIAMOND" rowTwo: - "OBSIDIAN" - "defaultheart" - "OBSIDIAN" rowThree: - "DIAMOND" - "BEACON" - "DIAMOND" invulnerable: false despawnable: true whitelistedWorlds: [] sound: enabled: false sound: ENTITY_PLAYER_LEVELUP volume: 1.0 pitch: 1.0

You can add as many custom items as you want

```

If you want a slot in the crafting recipe to be blank, replace the block name with `AIR`.

WorldGuard Flags

To set a custom worldguard flag, you have to use `/rg flags` and scroll to the last page.

There you can set the following flags: - heartloss - Allow heart loss in this region

<bR>

---

PlaceholderBanner

If you are using PlaceholderAPI on your server, you can use the following placeholders:

- %lifestealz_gracePeriodRemaining% - The amount of hearts a user has - %lifestealz_gracePeriodRemaining% - The maximum amount of hearts a user can have - %lifestealz_gracePeriodRemaining% - The current health, that the player has (half hearts rounded up) - %lifestealz_gracePeriodRemaining% - The amount of times a player has been revived - %lifestealz_gracePeriodRemaining% - If the player is in the grace period - %lifestealz_gracePeriodRemaining% - The remaining time of the grace period in seconds

<br>

---

PlaceholderBanner

If you need help with the setup of the plugin, or found a bug, you can join my discord here.

---

ADS