
LamDeathPenalties
Soul-point death system. Die too often, soul drains, penalties scale from item drops to health loss. Paper/Folia 1.21+.
Die too often and your soul drains. Each death costs a soul point, and the lower your soul gets, the harsher the penalties: item drops, lost hearts, lost money, custom commands. Points come back on their own, on wall-clock time or active playtime.
How it works
- Players start with 10 soul points (configurable).
- Death costs 1 point. The new tier's penalties apply immediately.
- Each tier (0–10) defines its own penalties.
- Points regenerate in real time or per hour of playtime.
- Tiers you leave undefined inherit from the next higher defined tier, so you only configure the levels you care about.

Per-tier penalties
- Item drops: drop percentage per tier, with separate hotbar and armor exposure toggles
- Hearts: remove hearts as punishment, or grant bonus hearts at high soul as a reward
- Vault money: flat or percent loss. PvP deaths transfer the money to the killer (configurable 0–100%); natural deaths burn it
- Commands: run anything console can dispatch at a tier — titles, sounds, kicks
PvP has a long-term cost
Each player also has a personal max soul capacity. Killing another player lowers the killer's max, and it only regenerates back over time. Repeat killers walk around with a permanently shallow soul pool.
Commands
| Command | Permission |
|---|---|
/lmdp — your soul points | default |
/lmdp check <player> | lmdp.check.others |
/lmdp preview — penalty table for every tier | default |
/lmdp set|give|take <player> <amount> | lmdp.admin |
/lmdp setmax|givemax|takemax <player> <amount> | lmdp.admin |
/lmdp reload | lmdp.admin |
Aliases: /dp, /deathpenalties, /soulpoints. Players with lmdp.bypass skip all penalties.
PlaceholderAPI
Expansion identifier is soulpoints:
%soulpoints_current%/%soulpoints_max%→7/10%soulpoints_progress_bar%→███████░░░%soulpoints_recovery_time%→2h 15m 30s
Full placeholder list on GitHub.
Developer API
Service-provider API via Bukkit's ServicesManager. SoulPointsChangeEvent is cancellable before the change; SoulPointsChangedEvent fires after. Examples on GitHub.
Requirements
- Paper or Folia 1.21+, Java 21
- YskLib 1.8.0+ (required)
- Vault (optional, money penalties) · PlaceholderAPI (optional)
Full config reference and YAML examples on GitHub.

