⚔ GraveEcho
A ghostly death recovery system for Paper 1.21+
When you die, your lost echo rises.
Return to your death site, defeat it, and reclaim everything you lost.
A ghostly death recovery system for Paper 1.21+
When you die, your lost echo rises.
Return to your death site, defeat it, and reclaim everything you lost.
Overview
GraveEcho replaces the default item-scatter on death with a persistent Echo mob — a hostile entity that guards your lost items at the exact spot you fell. Your inventory, armor, and off-hand are captured the moment you die. To get them back, you must return to your death location and destroy the Echo.
No grave blocks. No chest menus. No holograms. Just you, your ghost, and the items you earned.
Features
- Echo mob spawns on death — a named, glowing zombie (or skeleton) appears at your death location, guarding your items.
- Gear-scaled difficulty — the Echo's health and attack power increase based on the armor and weapon you had when you died.
- Boss bar — a proximity bossbar shows the Echo's remaining health when you are within range.
- Particles and sounds — configurable visual and audio effects on spawn and death.
- Fire immunity — the Echo cannot burn in sunlight, preventing accidental daytime loss.
- No despawn — the Echo is protected from natural despawning and chunk unload issues while the server is running.
- Expiry system — the Echo automatically disappears after a configurable time limit, optionally dropping items.
- Owner-only or public mode — restrict damage to the owner only, or let any player chip in.
- Full item capture — main inventory, all four armor slots, and the off-hand slot are all saved and returned.
- Multi-language support — English and Hungarian included; add any custom language file.
- Built-in update checker — notifies admins in-game and in the console when a newer version is available.
- Complete admin toolkit — list, remove, teleport to, and clear all active Echoes from any player.
- Zero NMS — built entirely on the public Paper 1.21 API. Compatible with future minor updates.
How GraveEcho Works
Step 1 — Player dies
- The player's full inventory, armor, and off-hand are captured and stored.
- Vanilla item drops are suppressed — nothing scatters on the ground.
- A named Echo mob spawns at the exact death location.
Step 2 — The Echo guards the items
- The Echo pursues and attacks its owner (or nearby players in public mode).
- The Echo glows and displays the owner's name above it.
- A bossbar appears when the owner comes within range.
- The Echo cannot burn, cannot despawn, and resets fire ticks every tick.
Step 3 — Items are returned
- Kill the Echo → all saved items drop at the Echo's location.
- Echo expires → items drop automatically (if
drop-items-on-expire: true). - Admin removes Echo → items drop at the Echo's current position.
Gear scaling table
| Armor tier | HP bonus per piece | Weapon tier | Damage bonus |
|---|---|---|---|
| Leather | +0 HP | Wood / none | +0 |
| Iron / Chainmail / Gold | +2.5 HP | Stone / Gold | +1 |
| Diamond | +7.5 HP | Iron | +2 |
| Netherite | +10 HP | Diamond | +3 |
| — | — | Netherite | +4 |
Commands
The main command
/graveecho also accepts the alias /ge.| Command | Permission | Description |
|---|---|---|
/grave | graveecho.use | Show your active Echo's location, elapsed time, and death cause. |
/graveecho | graveecho.use | Show plugin info and current version. |
/graveecho help | graveecho.use | List all available commands. |
/graveecho version | graveecho.use | Show current version and update check status. |
/graveecho reload | graveecho.admin | Reload config.yml and the active language file without restarting. |
/graveecho list | graveecho.admin | List all active Echoes with world, coordinates, and death cause. |
/graveecho remove <player> | graveecho.admin | Remove a player's Echo. Items drop at the Echo's location. |
/graveecho tp <player> | graveecho.admin | Teleport to a player's Echo. |
/graveecho clearall | graveecho.admin | Remove all active Echoes. Items drop for each one. |
Permissions
| Permission node | Default | Description |
|---|---|---|
graveecho.use | Everyone | Access to /grave and basic /graveecho subcommands. |
graveecho.admin | OP only | Access to all admin subcommands and in-game update notifications. |
Configuration Highlights
config.yml is generated automatically on first run. Every setting has a default value — the plugin works out of the box with no manual setup required.
Code:
settings:
language: "en" # Language file (en, hu, or your own)
echo-mob-type: ZOMBIE # ZOMBIE (recommended) or SKELETON
echo-health: 40.0 # Base health in half-hearts
echo-damage: 6.0 # Base attack damage
echo-speed: 0.32 # Movement speed
echo-follow-range: 32.0 # Detection and chase range (blocks)
echo-knockback-resistance: 0.4 # Knockback resistance (0.0 – 1.0)
echo-glowing: true # Enable glow effect on the Echo
echo-drop-items-on-kill: true # Drop items when the Echo is killed
echo-expire-minutes: 60 # Minutes until the Echo automatically expires
drop-items-on-expire: true # Drop items when the Echo expires
# true → only the owner can damage the Echo; Echo only attacks the owner.
# false → anyone can damage the Echo; Echo prefers the owner, then nearest player.
allow-only-owner-to-damage: true
scale-echo-by-gear: true # Scale Echo stats by the player's gear at death
fix-echo-ai: true # Enable retarget task for stable mob AI
retarget-interval-ticks: 40 # Target refresh rate (20 ticks = 1 second)
bossbar-enabled: true # Show bossbar to owner when within range
bossbar-range: 20.0 # Range in blocks for the bossbar
bossbar-color: PURPLE # PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
effects:
spawn-particles: true
death-particles: true
spawn-sound: true
death-sound: true
debug:
enabled: false # Set true for verbose logging
startup-banner:
enabled: true # Set false to suppress the ASCII banner
builtbybit:
enabled: true
resource-id: 110138
token: "" # Your BuiltByBit Shared API token (never logged)
# Scopes: resources.creator.updates.view,
# resources.creator.versions.view,
# resources.embed.latest
update-checker: true
check-on-startup: true
notify-admins: true
check-timeout-seconds: 10
Key toggles at a glance:
allow-only-owner-to-damage— switch between private and server-wide PvPvE mode.scale-echo-by-gear— disable if you want a flat difficulty regardless of gear.echo-expire-minutes— set the time window for item recovery (default: 60 minutes).drop-items-on-expire— set tofalseto permanently lose items on expiry (hardcore mode).bossbar-color— choose from PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE.
Language Support
GraveEcho ships with two built-in language files and supports unlimited custom translations.
| Code | Language |
|---|---|
en | English (default) |
hu | Hungarian |
Switching the language:
- Open
plugins/GraveEcho/config.yml. - Set
settings.language: "hu"(or your language code). - Run
/graveecho reload.
Adding a custom language:
- Copy
plugins/GraveEcho/messages/en.ymltomessages/de.yml(or any code). - Translate all message values. Do not change the YAML keys.
- Set
settings.language: "de"and run/graveecho reload.
If the requested language file is missing, GraveEcho falls back to English automatically and logs a warning.
Requirements
| Requirement | Version |
|---|---|
| Server software | Paper or a Paper-based fork |
| Minecraft | 1.21 or higher |
| Java | 21 or higher |
⚠ Spigot and CraftBukkit are not supported.
GraveEcho uses Paper-specific APIs (
setAware(), PluginMeta, Adventure components) that are not available on vanilla Spigot. The plugin will not load correctly on non-Paper servers.Installation
- Download
GraveEcho-1.0.0.jarfrom the resource page. - Place the file in your server's
plugins/folder. - Start or restart the server.
- All configuration files are generated automatically in
plugins/GraveEcho/. - Edit
config.ymlto your preferences. - Run
/graveecho reloadto apply any changes without restarting.
No dependencies. No additional setup required.
Developer Website
Official developer website:nexbytedev.dev
GraveEcho downloads, updates and support remain available through this BuiltByBit resource page.
Support
- Before reporting an issue: set
debug.enabled: trueinconfig.yml, run/graveecho reload, reproduce the problem, and include the relevant console output in your message. - Bug reports and feature requests: use the Discussion tab on this resource page.
- Configuration help: consult the annotated
config.ymlabove or theTESTING.mdfile included in the repository.
GraveEcho — Paper 1.21+ · Java 21 · No NMS · No dependencies
