⚔ RuthlessSMP — Make Every Death Matter
RuthlessSMP turns your server into a high-stakes survival experience where hearts are currency, kills have consequences, and no fight is ever just a fight.
RuthlessSMP turns your server into a high-stakes survival experience where hearts are currency, kills have consequences, and no fight is ever just a fight.
❤ Lifesteal — Heart Drop System
Victims drop a physical heart item on death. Pick it up, right-click, gain a heart. Lose it in lava, and it's gone forever.
- Configurable start/max hearts · PvP-only or all-deaths mode (lose-on: PVP_ONLY / ALL)
- Custom textured heart item — material, name & lore fully editable in MiniMessage
- 0 hearts → downed (spectator) with auto-revive countdown on the action bar; revive delay & hearts-on-revive configurable, instant /smp revive for admins
- Money (Vault) and item bounties — both can pool on the same head
- Escrow-protected: rewards secured on placement, paid automatically on the kill
- Pooling (configurable) · /bounty top leaderboard · paginated bounty GUI with player heads
- Anonymous placement announcements (toggleable) — revenge-proof drama
- No Vault? Item bounties keep working — zero hard dependencies
Death inflicts a random timed curse: Daylight Burn, No Water Breath, Weakness, Blindness — each individually toggleable with its own duration. Timers run in real time, even while offline.
The twist: a cursed player's melee hit can pass a curse to the victim — chance, per-pair cooldown and master switch all configurable. Remaining time carries over. Projectiles don't trigger it; downed players are safe.
🗡 5 Sword Elements (custom textured)
Stamp abilities onto swords with /smp element:
- Silver — purges all positive potion effects on hit
- Absolute Failure — the lower your health, the harder you hit (up to 3x; multiplier & curve configurable)
- Tracker — hit a bountied target, see their particle trail for 45s (only you can; duration & particle configurable)
- Entropy — critical hits scramble the target's movement speed
- Override — shift+right-click to arm an armor-piercing true-damage strike; after it lands, heavy slowness hits you (arm window, slowness level & duration configurable)
Custom heart & element sword models + negative-space custom menu backgrounds for /smp menu and /bounty gui.
- Pre-hosted — nothing to upload. The download URL and SHA-1 hash ship pre-configured in config.yml.
- Enabling it: open config.yml → set resource-pack.enabled: true → restart. Players download it automatically on join. That's the whole setup.
- Already serve your own pack? With additive: true (default) ours stacks on top of your existing pack (1.20.3+ clients) — no merging, no overwrites. Prefer the old behavior? additive: false replaces instead.
- required: false by default — players who decline simply see vanilla looks. Set required: true only if your gameplay depends on the visuals (decliners get kicked).
- Without the pack everything still works — hearts and element swords fall back to clean vanilla item looks, menus open with standard backgrounds.
- Drop RuthlessSMP.jar into /plugins and restart (Paper 1.21.x, Java 21).
- Optional: install Vault + an economy plugin (EssentialsX etc.) for money bounties, and PlaceholderAPI for placeholders — both auto-detected, no config needed.
- Optional: set resource-pack.enabled: true for custom textures & GUIs.
- Tune config.yml & messages.yml to taste → /smp reload applies both live, no restart.
| Command | Description | Permission |
|---|---|---|
| /smp | Help menu | smp.use |
| /smp menu | Heart & curse status GUI | smp.use |
| /smp hearts [player] | Heart status (text) | smp.use |
| /bounty set <player> money <amount> | Place a money bounty | smp.bounty |
| /bounty set <player> item | Held item as bounty | smp.bounty |
| /bounty list · top · info <player> · gui | Browse bounties | smp.bounty |
| /smp revive <player> | Instant revive | smp.admin.revive |
| /smp heart <add|remove|set> <player> <n> | Edit hearts | smp.admin.heart |
| /smp curse <player> <curse|clear> | Apply/clear curses | smp.admin.curse |
| /smp element <give|apply|remove|list> | Manage sword elements | smp.admin.element |
| /smp reload | Reload config + messages | smp.admin.reload |
%ruthlesssmp_hearts% · %ruthlesssmp_max_hearts% · %ruthlesssmp_health% · %ruthlesssmp_status% · %ruthlesssmp_downed% · %ruthlesssmp_revive_seconds% · %ruthlesssmp_curse_count% · %ruthlesssmp_curses% · %ruthlesssmp_has_bounty% · %ruthlesssmp_bounty% · %ruthlesssmp_bounty_money%
Works for offline players too — perfect for leaderboards & holograms. Note the identifier is ruthlesssmp (three s's).
⚙ Config Highlights
- hearts: starting / max / minimum · lose-on mode · heart item material, name, lore
- revive: auto-revive seconds · hearts granted on revival
- bounty: minimum amount · self-bounty toggle · pooling · placement announcements
- curse: per-curse enable + duration · stacking · transfer chance / cooldown / master switch
- sword-elements: master switch · per-element tuning (damage curve, durations, particles, backlash)
- storage: async save interval — YAML, no database setup
- Every player-facing message in messages.yml — MiniMessage, hex & gradients, editable prefix
🛠 Troubleshooting
- "Money bounties are disabled": Vault or an economy plugin is missing. Install Vault + EssentialsX (or any Vault-compatible economy) and restart. Item bounties work regardless.
- Players see vanilla textures: resource-pack.enabled is false (default), or the player declined the pack. Nothing is broken — visuals are optional by design.
- Placeholders show as raw text: PlaceholderAPI isn't installed, or the identifier is misspelled — it's ruthlesssmp with three s's.
- My own server pack disappeared: set additive: true (default) so our pack stacks instead of replacing. Note: pre-1.20.3 clients can't stack packs.
- Changed config but nothing happened: run /smp reload — config and messages reload live.
⚙ Tech
Paper 1.21.x · Java 21 · Async YAML storage (no database) · Zero shaded dependencies · Live /smp reload
FAQ
Will this conflict with my existing resource pack?
No — ships disabled; when enabled it stacks on top of your pack (1.20.3+). Legacy replace mode available.
Do I need Vault or PlaceholderAPI?
No. Both optional soft-depends. Without Vault, item bounties still work fully.
Does the plugin work without the resource pack?
100%. Vanilla fallback looks; every mechanic identical.
Is player data safe across restarts?
Yes — async periodic saves plus save-on-quit and save-on-shutdown. Curse timers keep counting in real time even while offline.
