
Revive players after death Special items and mechanics Customizable settings Compatible with Minecraft 1.21–1.21.10 + (- 26.2)
A full-featured revival system for Minecraft Hardcore and Semi-Hardcore servers.
ReviveSystem gives dead players a second chance — but only through teamwork, rare items, and strategic decisions. When a player dies, they aren't permanently eliminated. Instead, they enter Spectator Mode and must wait for another player to bring them back. This keeps the Hardcore feeling intact while preventing frustration from permanent death.
Compatible with: Paper, Spigot, Bukkit — Minecraft 1.21 through 26.2+
Here's exactly what happens during a typical gameplay session:
When a player dies in your world, three things happen automatically:
The player is now "dead" and waiting for revival.
There are three ways to bring a dead player back:
/revive <playername> to instantly revive any dead player.This is a separate, optional feature that works alongside the revive system:
Dropped player heads are valuable revival tokens. By default, they can be destroyed by lava and explosions. You can change this in the config:
head.kill-at-lava: false → Heads survive lavahead.kill-at-explosion: false → Heads survive explosions (TNT, Creepers, etc.)| Property | Value |
|---|---|
| Base Item | Nether Star |
| Display Name | §bRevive Item (aqua colored) |
| Effect | Revives one dead player |
| Consumed on use | Yes |
Crafting Recipe:
[Player Head]
[Gold Ingot] [Emerald] [Gold Ingot]
[Totem of Undying]
In the 3×3 crafting grid:
| Property | Value |
|---|---|
| Base Item | Player Head (with dead player's skin) |
| Display Name | §bRespawn Point of [PlayerName] |
| Effect | Place to revive the specific player |
Crafting Recipe:
[Soul Sand] [Soul Sand] [Soul Sand]
[Soul Sand] [Player Head] [Soul Sand]
[Soul Sand] [Soul Sand] [Soul Sand]
Place a dead player's dropped head in the center, surrounded by 8 Soul Sand blocks.
| Command | Description | Permission |
|---|---|---|
/revive |
Shows help and available commands | Everyone |
/revive <player> |
Revives a dead player instantly | revivesystem.use |
/revive reload |
Reloads config and messages without server restart | revivesystem.admin |
/rev |
Alias for /revive |
Same as /revive |
/revive Steve → Revives the player "Steve"
/revive reload → Reloads all configuration files
/rev Alex → Short form: revives "Alex"
| Permission | Description | Default |
|---|---|---|
revivesystem.use |
Allows using the /revive <player> command |
Everyone |
revivesystem.craft |
Allows crafting the Revive Item | Everyone |
revivesystem.head |
Allows using the Head Mechanic (bonus hearts) | Everyone |
revivesystem.admin |
Allows /revive reload and admin commands |
OP only |
After the first server start, the file plugins/ReviveSystem/config.yml is created. Here's every option explained:
# ============================================================
# ReviveSystem Configuration v2.0
# ============================================================
# Language for all messages. Options: de, en, es
# You can also create your own language file (see Language section below)
language: de
# ============================================================
# Head Mechanic Settings
# ============================================================
head:
# Set to false to completely disable the head mechanic
# (bonus hearts, advancement, sound — everything)
enabled: true
# How many BONUS hearts the player gets when wearing a head.
# 20 = +10 full hearts (total: 20 full hearts = 40 HP)
# 10 = +5 full hearts (total: 15 full hearts = 30 HP)
# 40 = +20 full hearts (total: 30 full hearts = 60 HP)
bonus-hearts: 20
# Should dropped player heads be destroyed when they fall in lava?
# true = yes, the head will burn and be lost forever
# false = no, the head is immune to lava damage
kill-at-lava: true
# Should dropped player heads be destroyed by explosions (TNT, Creepers)?
# true = yes, explosions can destroy heads
# false = no, heads are protected from explosions
kill-at-explosion: true
# The sound that plays when a player puts on a head.
# Must be a valid Minecraft sound name.
# Examples: ENTITY_PLAYER_LEVELUP, UI_TOAST_CHALLENGE_COMPLETE,
# ENTITY_ENDER_DRAGON_GROWL, BLOCK_BEACON_ACTIVATE
advancement-sound: ENTITY_PLAYER_LEVELUP
# Volume of the sound (0.0 = silent, 1.0 = normal, 2.0 = loud)
advancement-sound-volume: 1.0
# Pitch of the sound (0.5 = deep/slow, 1.0 = normal, 2.0 = high/fast)
advancement-sound-pitch: 1.0
# ============================================================
# Revive System Settings
# ============================================================
revive:
# After how many deaths should the player become a spectator?
# 1 = after the first death (default, most hardcore)
# 2 = after the second death (more forgiving)
# 3 = three strikes and you're out
deaths-required: 1
# Can a player revive THEMSELVES with a Revive Item?
# true = yes, a spectator can self-revive if they somehow have the item
# false = no, another living player must revive them (default)
allow-self-revive: false
# How long (in ticks) the death info GUI stays open.
# 20 ticks = 1 second. Default: 100 ticks = 5 seconds.
spectator-gui-duration: 100
# Should a player head drop when a player dies?
# true = yes, a head with the player's skin drops at the death location
# false = no head drops (disables the Respawn Point mechanic)
drop-head-on-death: true
# Health the player gets after being revived.
# 20.0 = full health (10 full hearts)
# 10.0 = half health (5 full hearts)
# 2.0 = barely alive (1 full heart)
revive-health: 20.0
# ============================================================
# Data & Performance Settings
# ============================================================
data:
# Auto-save player data every X seconds.
# 300 = every 5 minutes (recommended)
# 60 = every minute (more frequent, slightly more disk I/O)
# 0 = disabled (data is only saved when it changes)
auto-save-interval: 300
ReviveSystem supports multiple languages out of the box: German (de), English (en), and Spanish (es).
plugins/ReviveSystem/config.ymllanguage: de to your desired language code (e.g., en or es)/revive reload or restart the serverAll messages are stored in YAML files in the plugin folder:
plugins/ReviveSystem/messages_de.yml — Germanplugins/ReviveSystem/messages_en.yml — Englishplugins/ReviveSystem/messages_es.yml — SpanishYou can edit any message directly in these files. Use § color codes for formatting:
§a = green, §b = aqua, §c = red, §e = yellow, §7 = gray§l = bold, §o = italic, §n = underlineAvailable placeholders:
%player% — Player name%level% — Player level%playtime% — Total playtime in hours%deaths% — Number of deaths%hearts% — Bonus heart countmessages_en.yml to messages_xx.yml (replace xx with your language code)language: xx in config.yml/revive reloadReviveSystem.jar fileplugins/ folderKopfAdvancementPack folder into your server's datapacks/ folder (inside your world folder, e.g., world/datapacks/)ReviveSystem v2.0 aktiviert!plugins/ReviveSystem/config.yml/revive reload — no server restart needed!If you're updating from ReviveSystem v1.0:
playerdata.yml is fully compatible — no data loss!kill_at_lava, kill_at_explosion) will need to be manually transferred to the new format (head.kill-at-lava, head.kill-at-explosion)Q: What happens when a player dies?
They drop their head as an item, enter Spectator Mode, and see a brief info screen showing their level and playtime. They can fly around and watch but cannot interact with the world.
Q: Can a dead player still chat?
Yes! Chat is not restricted. Dead players can communicate with living players to coordinate their revival.
Q: What happens if nobody revives a dead player?
They stay in Spectator Mode indefinitely until someone revives them or an admin uses
/revive <player>.
Q: Can I have multiple lives before becoming a spectator?
Yes! Change
revive.deaths-requiredin config.yml. Set it to2for two lives,3for three, etc.
Q: Does the plugin affect vanilla advancements?
No. The "Kopf hoch!" advancement is in its own namespace (
revivesystem:) and does not interfere with any vanilla Minecraft advancements.
Q: Is the plugin compatible with other plugins?
Yes. ReviveSystem uses standard Bukkit/Paper events and does not modify vanilla mechanics. It should work alongside most other plugins.
Q: Does the plugin cause lag?
No. Version 2.0 includes significant performance optimizations:
- Player data is saved asynchronously (no main thread blocking)
- Configuration values are cached (not re-read on every event)
- Explosion checks only scan nearby entities (not the entire world)
- A dirty-flag system prevents unnecessary disk writes
Q: Where is player data stored?
In
plugins/ReviveSystemData/playerdata.yml. This file is saved asynchronously and auto-saved at a configurable interval (default: every 5 minutes).
Q: Can I reset a player's death count?
Currently, you need to manually edit
plugins/ReviveSystemData/playerdata.ymland remove or reset the player's UUID entry. A command for this may be added in a future version.
| Problem | Solution |
|---|---|
| Plugin doesn't load | Check that you're running Java 21+ and Paper/Spigot 1.21+ |
| "Kopf hoch!" advancement doesn't appear | Make sure the KopfAdvancementPack is in world/datapacks/ and run /reload |
| Head doesn't give bonus hearts | Check that head.enabled: true in config.yml and the head has the correct format |
| Revive Item doesn't work | Make sure the player is actually in Spectator Mode and hasn't already been revived |
| Messages are in the wrong language | Change language in config.yml and run /revive reload |
| Changes to config don't apply | Run /revive reload to apply changes without restart |
For support, feedback, or suggestions, feel free to contact me on Discord: desertlox
(Feature with the Advancement pack coming in the future)
This plugin is not open source. All rights reserved.