SoulKeep

Lava/Void-safe graves with automatic compass tracking. Recover items + XP with one click (Paper 1.21+, zero deps).

87

SoulKeep

<p align="center"> <img src="https://img.shields.io/badge/Minecraft-1.21+-62b47a?style=for-the-badge&logo=minecraft" alt="Minecraft 1.21+"/> <img src="https://img.shields.io/badge/Paper-API-FF5555?style=for-the-badge" alt="Paper API"/> <img src="https://img.shields.io/badge/Zero-Dependencies-7289da?style=for-the-badge" alt="Zero Dependencies"/> </p>

<h1 align="center">SoulKeep</h1> <p align="center"><strong>Persistent graves for Paper 1.21+</strong></p> <p align="center">Graves, auto grave compass, lava/void-safe placement — no database, no dependencies.</p>

---

Overview

safe item retrieval creates a grave when a player dies and restores items reliably on pickup. It is designed for safe item retrieval (restarts / chunk reloads) and safe item retrieval.

---

Features

- Graves at death location Player head + hologram at (or near) the death spot.

- Grave Compass (on respawn) Optional compass that points to the grave. Removed after successful pickup.

- nearest safe block Graves spawn at the nearest safe block (configurable per world).

- Pickup rules Optional: allow teammates to pick up your grave.

- 15 minutes Default: 15 minutes (configurable), including expire action (drop/destroy).

- max 3 graves Default: max 3 graves. When exceeded, the oldest grave is handled by the configured rule.

- Slot-aware restoration Inventory/Hotbar/Armor/Offhand are restored with priority and, when possible, returned to their original slots.

---

Dupe-resistant design

> Important: SoulKeep reduces dupe edge cases via locking and atomic retrieval.

- Persistence: a grave can only be processed by Persistence: player at a time (double-click ignored). - Persistence: give items → remove grave → persist immediately. - Persistence: overflow drops at the grave (no silent loss, no dupe). - Persistence: grave data survives restarts and graves respawn on chunk load when needed.

---

Requirements

- Zero dependencies - Zero dependencies (no Vault, no PlaceholderAPI, no external database)

---

Installation

1. Put `SoulKeep-<version>.jar` into `plugins/` 2. Start the server 3. Optional: edit `plugins/SoulKeep/config.yml` 4. Run `/soulkeep reload` (or restart) after config changes

---

Commands & Permissions

| Command | Description | Permission | |--------|-------------|------------| | `/soulkeep` | Lists your active graves (with coordinates) | – | | `/soulkeep reload` | Reloads the config | `soulkeep.admin` | | `/soulkeep clean` (`/sk clean`) | Removes your graves and drops items; Admin/Console can clean globally | Admin: `soulkeep.admin` |

| Permission | Default | Description | |-----------|---------|-------------| | `soulkeep.admin` | OP | Administrative functions (reload/clean/global) | | `soulkeep.lavavoidproof` | Everyone | Enables lava/void-safe placement (if permission-gated) |

---

Configuration (excerpt)

```yaml

Lava/Void protection

lava-void-proof: true lava-void-proof-worlds: {} # e.g. world_nether: false -> Overworld only

Grave Compass

compass-tracking: true

Limits

max-graves: 3

Expiration

grave-expire-hours: 0.25 # hours (0 = never) expire-action: DROP # DROP or DESTROY

ADS