UltraRevive is a Paper plugin made by Social Studio (its creator goes by GupeLegend) that changes a single rule, but changes it for good: the hit that was about to kill you no longer kills you. Instead, it leaves you downed — on the ground, glowing, defenseless — and gives your team a few seconds to reach you and pick you back up. If nobody makes it in time, you bleed out, and that's when you really die. The plugin adds three custom totems with their own textures, a resource pack it serves on its own, per-player statistics, and a public API so other plugins can know who's downed.
What It Is
UltraRevive turns every fight into a team fight. Going up against everyone alone stops being "if I mess up, I die" and becomes "if I mess up, I've got a few seconds for someone to save me." Sticking close to your teammates starts paying off, and a rescue under fire — crouching next to someone bleeding out while arrows rain down — ends up being one of the best moments you'll take away from the server.
This isn't a graves plugin, nor one about totems that prevent death: UltraRevive's three totems don't stop you from going down — what they change is what happens afterward. That's exactly what gives the self-revive button its purpose.
[UltraRevive] ☠ Steve was downed. A teammate can revive him!
[UltraRevive] ✔ Steve was revived.
Features
- Downed instead of instant death: the lethal hit knocks you to the ground instead of killing you.
- Cooperative rescue: crouching next to the downed player revives them; if several people crouch at once, it goes faster.
- Progress with a grace period: if the reviver steps away for a moment, progress freezes for a few seconds before it starts dropping — it's never lost all at once.
- Three custom totems, each with its own texture, name, and lore, and its own rescue rules.
- Resource pack served by the plugin itself: nobody on your server needs to set up separate hosting.
- Tension in the final seconds: an accelerating heartbeat, blood particles, and a light beacon over the downed player.
- Optional fatigue: if you get downed over and over in a short time, you'll hold out for less time before bleeding out.
- Per-player statistics (
/ur stats): times downed, times revived, rescues performed, self-revives, and bleed-outs. - Two full languages (English and Spanish), including the name and description of all three totems.
- Public API and two Bukkit events so other plugins can react to a downing or a rescue.
- Automatic migration from older installations (shared folder, the plugin's previous name, and even graves from a previous version that no longer exists).
Requirements and Compatibility
| Requirement | Value |
|---|---|
| Server | Paper 26.1.2 or newer (Spigot is not supported) |
| Java | Java 25 |
| Folia | Not supported (folia-supported: false in plugin.yml) |
| Required dependencies | None |
| Optional dependencies (softdepend) | LuckPerms (to read the player's rank from the plugin's code) |
Note:
plugin.ymlalso declaresLPC,ItemEdit, andItemTagassoftdepend. These are leftovers from the shared jar UltraRevive came from; the code published in this repo doesn't actually use them for anything yet, so you don't need to have them installed.
UltraRevive is self-contained: it doesn't need a database, doesn't need Vault, and doesn't need any other plugin to work at 100%. If you have LuckPerms installed, the plugin detects it automatically and exposes the player's rank through its own internal API (see Integrations and API); if you don't, UltraRevive keeps working exactly the same.
Step-by-Step Installation
- Download
UltraRevive-1.0.jarand drop it into your Paper server'splugins/folder. - Start (or restart) the server. There's nothing to configure by hand: everything is ready to play as soon as it boots up.
- Check the console: you should see
UltraRevive v1.0 enabled.and, if the internal resource pack started up successfully,Serving the resource pack at: http://.... - If you're using the resource pack's internal mode (the default), open port 8081 on your firewall/router or with your hosting provider. If the port is closed, the plugin will say so in the console, and the totems will simply look like regular totems of undying; the rest of the plugin keeps working the same.
- Adjust
plugins/UltraRevive/config.ymlto your liking (see Configuration) and, if you changed anything, run/ur reload.
The plugin's data lives in plugins/UltraRevive/: that's where you'll find config.yml, lang/en.yml, lang/es.yml, stats.yml, and resourcepack.zip. Your config.yml is never overwritten when you update the jar to a new version.
If You're Coming From an Earlier Installation
UltraRevive started out as part of an all-in-one jar; these migrations run on their own, once, on startup:
- Old shared folder (
plugins/UltraView/UltraRevive/): if your data was still there, it gets moved automatically toplugins/UltraRevive/. Nothing gets overwritten: if a file can't be moved, the old folder is left as it was, and it deletes itself once it's empty. - Plugin's previous name (
UltraRevivir): if aplugins/UltraRevivir/folder exists, the plugin pulls overstats.yml, thelang/folder, and anyconfig.ymlvalues that still share the same key name in the new version. It doesn't delete anything from the old folder. - Old permissions (
ultrarevivir.*): they still work. They're declared as parents of the new permissions (ultrarevivir.admin→ultrarevive.admin, etc.), so if you already granted them to someone in LuckPerms, you don't have to touch anything. - Totems already handed out: each totem carries a hidden tag (
ultrarevive:ur_item). Ones given out while the plugin had its previous name carry the old tag (ultrarevivir:ur_item) and are still recognized the same way; they don't suddenly turn into regular totems. - Pending graves: if your server used to run a graves system that no longer exists, and something was left unclaimed, UltraRevive returns it automatically the first time each affected player logs into the server (experience included). Anything that doesn't fit in the inventory is dropped at their feet — it's never lost. This is a one-time recovery: once everyone has gotten their stuff back, the plugin stops looking for pending graves.
How It Works
When You Get Downed
If a hit would put you at 0 health, UltraRevive intercepts it: your health drops to 2 hearts (downed-health, 1 heart on the bar) instead of zero, and you become downed.
- You're put into Adventure mode, in a crawling pose (swimming/
swimmingreused as the "downed" pose), glowing red, with Slowness (level 7 by default) and Blindness. - While downed, you can't attack, break or place blocks, drop items, or eat. If you have the Blessed Totem of the Aether, the one exception is using it (button or right-click) to self-revive.
- A red boss bar appears, counting down the seconds you have left: 60 seconds by default.
- Mobs and the environment can't finish you off (controlled by
immune-to-mobs); another player can, iffinish-by-playersis enabled (it is by default). Iffinish-by-playersis set tofalse, hitting a downed player does absolutely nothing. - The void still kills you just the same, downed or not: nobody falls forever.
- Disconnecting while downed kills you (
die-on-quit, enabled by default). Closing the client isn't a way to save yourself.
In the final seconds (the last 25% of the time, bleed-tension.threshold-percent), an accelerating heartbeat plays and blood particles fall at your feet; on top of that, if downed-beacon is enabled, a particle beam (END_ROD by default) rises from your body so your team can spot you amid the chaos of a fight.
The Rescue
A teammate crouches within 3 blocks of you (revive-radius), and as long as they stay crouched, progress climbs. It takes 5 seconds (revive-duration) to complete.
- It costs the reviver hunger: once the rescue completes, 6 hunger points (3 drumsticks) are deducted all at once. While reviving, they need to have some hunger left (more than 0); if it hits 0, they can't continue, and they're warned about it in the action bar.
- Cooperative rescue: if several players crouch next to the same downed player at once, progress climbs faster. Each extra reviver adds
coop-revive.bonus-per-extra(1.0 by default) to the rate, up to a maximum ofcoop-revive.max-extra(3) extra revivers counted. - Progress doesn't vanish all at once: if the person reviving you steps away (a shove, a mob getting in the way), progress freezes for
coop-revive.grace-seconds(2 seconds) before it starts slowly dropping. That way, an accidental shove doesn't doom you. - Optional rules for harsher servers:
interrupt-on-damage: if the person reviving you takes damage, the revive is interrupted (disabled by default, to avoid shifting the balance overnight).downed-fatigue: if you get downed several times in a row within a short window (window-seconds, 120s by default), you'll hold out for less time before bleeding out the next time (disabled by default).
Anyone can revive you, not just your team or your clan: UltraRevive doesn't filter by faction (that's left up to a separate clans plugin, if your server uses one). Having a stranger crouch down to save you is, on purpose, part of the charm.
Bleeding Out and Final Death
If the boss bar's countdown hits zero without anyone having revived you, you bleed out: that's when you really die, with everything that implies in vanilla (your inventory is lost according to the server's normal rules, ENTITY_WITHER_DEATH plays, and nearby players are notified).
Important: a downed player's actual death is always applied one tick later, never within the same damage event that finished them off. This is a deliberate design decision: killing inside an
EntityDamageEventwould nest two deaths in a single hit, and the server would end up emptying the inventory twice, losing the loot in the process.
You can also give up yourself with the [Give Up] button (or /ur surrender) if you don't want to wait: it kills you instantly, with its own sound and smoke particles. If you've set surrender-cooldown (0 by default, meaning no limit), you have to stay downed for that many seconds before you can give up.
Special Cases
- The void always kills you, downed or not; if you fall into the void while downed, you bleed out right there without waiting for the timer to run out.
- A player with
ultrarevive.bypassnever goes down: they die the normal vanilla way, as if the plugin didn't exist for them. - Specific worlds: with
enabled-worldsyou can limit which worlds the downing mechanic works in (empty = all of them).
The Three Totems
All three are the same base item under the hood (TOTEM_OF_UNDYING), told apart by their custom-model-data and a hidden tag in their persistent data. That means two things: a regular Totem of Undying (without that tag) stays a regular totem and saves you the usual vanilla way, and nobody can "fake" one of the three totems by renaming a common totem — the plugin doesn't look at the name, it looks at the tag.
No totem stops you from going down. What they change is what happens after that.
Blessed Totem of the Aether
Golden, with green eyes. Can be fished up or found in buried treasure chests.
- What it does: use it while you're downed (with the
[Self-Revive]chat button or a right-click) and you get back up on your own, without needing anyone to rescue you. - When you get up, you receive Absorption (120s) and Regeneration (5s), and you're left a bit dazed (Nausea, 20s) as a side effect.
- Where it drops: buried treasure chests (20% chance) and fishing (0.5%). No other chest in the game.
- It's consumed: one unit is used up when you use it.
Cursed Totem of the Nether
Weathered stone, with red eyes. Found in ruined portals, bastions, and Nether fortresses.
Nether fortresses are, along with bastions, where it's most likely to turn up.
A ruined bastion, another one of its possible hiding spots.
- What it does: you don't use it yourself — you carry it while reviving another player. As long as you have it in your inventory, you revive up to 3 times faster than normal, and the person you revive comes back with full health (20 hearts), plus Regeneration and Absorption as a bonus.
- You, the reviver, pay the cost: once the rescue completes, you get 20 seconds of Wither. The downed player suffers none of this.
- The curse: if you die while carrying this totem (and you don't have a regular totem of undying, without the tag, in hand), no downing saves you: you die outright, even if you're also carrying the Blessed Totem of the Aether. Only a genuine vanilla totem in hand saves you from this.
- Where it drops: ruined portals (0.67%), bastions (1.2%), and Nether fortresses (1.2%).
- It's consumed: one unit is used from the reviver's inventory as soon as the rescue completes.
Unknown Totem of the End
A relic from End ship chests. Nobody fully understands its power, and it's meant to be a legend.
- If you use it while downed (like the Aether one, with the button or a right-click): you get back up on your own and it also teleports you to your respawn point (your bed, or the world spawn if you don't have one), with 2 minutes of Blindness as a side effect. It's, literally, an escape route.
- If you carry it while reviving another player: instead of helping you, it leaves a healing zone on the ground around the revived player — a circle of heart particles that gives Regeneration and Slow Falling (so you don't die from the fall) to anyone standing inside it, for a few seconds. In exchange, the reviver is left with Nausea for 20 seconds.
- Where it drops: chests on End ships (0.00067% chance — meant to be close to a myth). The plugin tells the ship apart from the End city (they share the same vanilla loot table) by checking for an elytra in an item frame near the chest, which is the one thing exclusive to the ship.
- It's consumed: one unit, whether you self-revive with it or use it to heal while reviving someone else.
Note: the End totem's
area-heal-team-onlyoption is inconfig.yml, but in this version of the code the healing zone heals anyone standing inside it, not just your team — team/clan filtering is left up to a separate clans plugin, which isn't hooked up to this option yet.
The Resource Pack
The three totems' textures come in a small resource pack, and the plugin offers it automatically to every player who connects, 2 seconds after they join. You don't need to upload anything anywhere yourself.
- It only changes the appearance of UltraRevive's three totems (
custom-model-data130001, 130003, and 130007). A regular Totem of Undying keeps its usual texture, and no other item, block, or menu is touched. - Without the pack, everything keeps working the same; the totems simply look like regular totems of undying.
resource-pack:
enabled: true
mode: internal # internal = served by the plugin · url = you serve it yourself
host: "AUTO" # AUTO = auto-detects the public IP; or type in your own
port: 8081 # you need to have this port open on your host
url: "" # only used with mode: url
force: false # true = the player is forced to accept it
prompt: "" # empty = uses the text from the configured language
In internal mode (the default), UltraRevive spins up its own tiny HTTP server on the configured port and tries to guess the server's public IP by querying api.ipify.org; if that fails, it uses the server's configured IP or, as a last resort, 127.0.0.1. If you'd rather control this yourself (for example because you're behind a proxy or have your own domain), set host by hand or switch to mode: url and point url to wherever you uploaded the .zip.
Tip: if you're already sending players your own resource pack, you don't need to use internal mode: merge UltraRevive's pack into yours (or import the
.zipinto your pack manager and rebuild it) and setresource-pack.enabled: false. If your pack already modifies the Totem of Undying, merge that file by hand: keep UltraRevive's threecustom-model-dataentries and leave your model as the fallback (the regular one, without the tag).
Commands
The main command is /ultrarevive, with the aliases /ur and /revivir.
| Command | What it does | Permission |
|---|---|---|
/ur or /ur help (alias ayuda) |
Shows help (different if you're an admin or not) | None |
/ur surrender |
You give up and die instantly, while downed | ultrarevive.surrender |
/ur selfrevive |
You get back up on your own by using a Blessed Totem of the Aether or an Unknown Totem of the End, while downed | None (you just need to have the totem on you and be downed) |
/ur stats [player] |
View revive stats; with no argument, shows your own | None to view your own · ultrarevive.admin to view someone else's |
/ur reload |
Reloads config.yml and the languages without restarting the server |
ultrarevive.admin |
/ur revive <player> |
Revives a downed player, as if another player had done it | ultrarevive.admin |
/ur down <player> |
Downs a player who isn't already downed | ultrarevive.admin |
/ur finish <player> (alias kill) |
Finishes off a downed player (makes them bleed out right away) | ultrarevive.admin |
/ur give <self\|boost\|end> [player] [amount] (alias dar) |
Gives one of the three totems. With no player, gives it to yourself; with no amount, gives 1 | ultrarevive.admin |
In /ur give, each totem also accepts these aliases: self/aether/jer..., boost/nether/kit..., and end (it's enough for the argument to start with those letters).
While you're downed, clickable buttons also appear directly in chat: [Give Up] (always) and [Self-Revive] (only if at least one of the self-revive totems is enabled in the config). They're shortcuts to /ur surrender and /ur selfrevive; you don't have to type the command by hand.
Permissions
| Permission | Default | What it does |
|---|---|---|
ultrarevive.admin |
op | Grants access to /ur reload, /ur revive, /ur down, /ur finish, /ur give, and to viewing other players' stats |
ultrarevive.bypass |
false | That player never goes down: they die the normal vanilla way |
ultrarevive.revive |
everyone | Can revive other players by crouching next to them |
ultrarevive.surrender |
everyone | Can use /ur surrender or the [Give Up] button |
Important:
ultrarevive.bypassinteracts with the config'saffect-opsoption in a way that isn't obvious. If a player is an operator and has thebypasspermission, butaffect-opsis set totrue(the default value), they'll still get downed:affect-ops: truemakes the downing mechanic reach ops too, overriding the bypass permission in that specific case. If you want an operator withultrarevive.bypassto never go down no matter what, setaffect-ops: false.
For compatibility with older installations, permissions under the plugin's previous name (ultrarevivir.admin, ultrarevivir.bypass, ultrarevivir.revive, ultrarevivir.surrender) still work: they're declared as parent permissions of the new ones, so if someone already had them in LuckPerms, there's nothing to change.
Configuration
It's all in a single, fully commented config.yml. These are its values exactly as they ship out of the box:
# UltraRevive. Stored in plugins/UltraRevive/ and NOT overwritten on update.
# Language: only 'en' and 'es'.
# ⚠ This changes EVERYTHING: chat messages AND the name and lore of all three totems.
language: en
enabled-worlds: []
# --- Timing ---
down-duration: 60
revive-duration: 5
revive-radius: 3.0
revive-by-sneaking: true
# --- Health ---
downed-health: 2.0
revive-health: 10.0
# --- Visual ---
glow: true
glow-color: RED
pose-crawl: true
blindness: true
slowness-amplifier: 6
particles: true
bossbar: true
bossbar-color: RED
# --- Rules ---
finish-by-players: true
immune-to-mobs: true
die-on-quit: true
adventure-mode: true
affect-ops: true
# Multiple teammates crouching revive faster.
coop-revive:
enabled: true
# Progress FREEZES for this many seconds if the reviver steps away for a moment (a shove in
# PvP, a mob getting in the way) before it starts decaying. 0 = lost instantly.
grace-seconds: 2
bonus-per-extra: 1.0
max-extra: 3
# Heartbeat and blood particles in the downed player's final seconds.
bleed-tension:
enabled: true
threshold-percent: 25.0
heartbeat-sound: ENTITY_WARDEN_HEARTBEAT
# Particle beam over the downed player so the team can spot them.
downed-beacon:
enabled: true
particle: END_ROD
# If you get hit while reviving, it's interrupted. Disabled by default to avoid shifting the balance overnight.
interrupt-on-damage:
enabled: false
penalty: 1.0
# If you get downed over and over in a short time, you hold out for less time before bleeding out.
downed-fatigue:
enabled: false
window-seconds: 120
factor-per-stack: 0.75
min-fraction: 0.3
hunger-cost: 6
# --- Announcements ---
broadcast-downed: true
broadcast-radius: 30
# --- Sounds ---
sound-downed: ENTITY_PLAYER_HURT
sound-revived: ENTITY_PLAYER_LEVELUP
sound-bled-out: ENTITY_WITHER_DEATH
sound-surrender: ENTITY_TOTEM_USE
surrender-particles: true
surrender-cooldown: 0
stats: true
# --- Resource pack ---
# internal = served by the plugin and needs the port open. url = you serve it yourself.
resource-pack:
enabled: true
mode: internal
host: "AUTO"
port: 8081
url: ""
force: false
prompt: ""
# --- The three totems ---
# All of them are TOTEM_OF_UNDYING distinguished by custom-model-data, so regular totems
# still look normal. Given out with /ur give <self|boost|end> [player] [amount].
items:
self-revive:
enabled: true
material: TOTEM_OF_UNDYING
custom-model-data: 130001
glow: true
health: 6.0
sound: ITEM_TOTEM_USE
side-effects: true
loot:
enabled: true
tables:
buried_treasure: 0.20
chance: 0.0
fishing: true
fishing-chance: 0.005
revive-boost:
enabled: true
material: TOTEM_OF_UNDYING
custom-model-data: 130003
glow: true
speed-multiplier: 3.0
revive-health: 20.0
reward-effects: true
curse-insta-death: true
curse-wither-seconds: 20
loot:
enabled: true
tables:
ruined_portal: 0.0067
bastion_treasure: 0.012
nether_bridge: 0.012
chance: 0.02
fishing: false
fishing-chance: 0.0
end-revive:
enabled: true
material: TOTEM_OF_UNDYING
custom-model-data: 130007
glow: true
teleport-home: true
self-revive-health: 6.0
blindness-seconds: 120
unknown-misfire-chance: 0.0
unknown-misfire-radius: 24
area-heal-radius: 5
area-heal-duration: 6
area-heal-level: 1
area-particle: HEART
area-heal-team-only: true
area-slow-falling: true
area-slow-falling-seconds: 4
reviver-nausea-seconds: 20
sound: ENTITY_ENDERMAN_TELEPORT
loot:
enabled: true
tables:
end_city_treasure: 0.0000067
chance: 0.0000067
fishing: false
fishing-chance: 0.0
require-end-ship: true
A quick rundown of the less obvious blocks:
language: changes everything, not just chat messages. The name and description of the three totems live inlang/<language>.ymlon purpose: if they lived inconfig.yml, changing the language would translate the messages but leave the totems in whatever language the file was first generated with.downed-health/revive-health: how many hearts you're left with when you go down, and how many you come back with when revived the normal way (without the Cursed Totem of the Nether, which uses its ownrevive-health: 20.0insideitems.revive-boost).slowness-amplifier: 6: this is the potion amplifier, not the level shown on screen — it's equivalent to Slowness VII.revive-by-sneaking: by default you have to be crouching for it to count as "reviving"; set tofalse, just standing inside the radius (revive-radius) is enough.coop-revive:bonus-per-extrais how much extra progress per tick each reviver beyond the first one adds, up tomax-extra.grace-secondsis the forgiveness window before progress starts dropping if the reviver steps away.interrupt-on-damage.penalty: ranges from 0.0 to 1.0;1.0(the default value if you enable it) means a single hit makes you lose 100% of the progress built up.downed-fatigue:factor-per-stackis applied multiplicatively for each downing within the window (window-seconds), andmin-fractionis the floor: you'll never hold out for less than that percentage of the normal time.items.*.loot.tables: you can set either a map (as it ships by default, with a different probability per structure) or a plain list of loot table names, which would all use the same probability (chance). Keys are matched by partial match against Minecraft's loot table key (for example,"ruined_portal"matchesminecraft:chests/ruined_portal).items.end-revive.require-end-ship: the End city and End ships share the same loot table in vanilla, so "ships only" can't be requested just by picking the table. With this set totrue, the plugin checks for an elytra in an item frame near the chest (the one thing exclusive to a ship) before dropping the totem.
After editing config.yml by hand, run /ur reload so the changes apply without restarting the server.
Messages and Languages
The text players see lives in plugins/UltraRevive/lang/en.yml and lang/es.yml, not in config.yml. It ships complete in English (the default) and Spanish; changing language: in the config changes the chat messages and the name/lore of all three totems at once.
Each message accepts some of these placeholders, depending on the case: {time}, {percent}, {target}, {player}, {name}, {n}, {secs}, {count}, {items}. You can edit any text with Minecraft color codes (&c, &l, etc.) and run /ur reload to see it applied.
Tip: if you add a new language by hand or update the plugin, you don't need to copy the whole file over: on load, UltraRevive automatically adds any key that exists in the jar's
.ymlbut isn't in your server's file yet, without overwriting anything you've already edited.
Bedrock Players
UltraRevive doesn't ship with a menu or a dedicated Bedrock/Geyser integration: the source code doesn't have anything built specifically for that. That said, almost the entire plugin runs server-side using vanilla mechanics (damage, Adventure mode, potions, boss bar, action bar, titles), so it should behave reasonably well on a server running Geyser. There are two things worth keeping in mind:
- The chat buttons (
[Give Up]and[Self-Revive]) are built with clickable text components (ClickEvent/HoverEvent), which Bedrock chat doesn't always render the same way Java does. If a Bedrock player can't tap the button, they can just use/ur surrenderor/ur selfrevivedirectly. - The resource pack is a Java Edition pack (it changes a vanilla item's
custom-model-data). A Bedrock client can't load a Java resource pack, so for those players the three totems will always look like a regular Totem of Undying — exactly the same thing that happens to any Java player who rejects the pack. The plugin keeps working just as well; only the texture changes.
Note: this hasn't been tested exhaustively against Geyser/Floodgate. If you run a mixed Java/Bedrock server, test the full flow (going down, buttons, self-revive) with a Bedrock player before relying on it in production.
Integrations and API
UltraRevive doesn't have a PlaceholderAPI expansion or integrate with Vault; what it does offer is:
- An optional bridge to LuckPerms: if the plugin detects it installed, it internally exposes (
UltraRevive#luck()) the player's primary rank, and, if a promotion track calledrankupexists, the next rank on that track. Meant for other Social Studio plugins to consume; it doesn't change anything about UltraRevive's own behavior or its messages. - A public API for other plugins, with no compile-time dependency needed:
UltraReviveAPI.isDowned(player); // or by UUID: isDowned(uuid)
UltraReviveAPI.isReviving(player); // is this player crouched reviving someone right now?
UltraReviveAPI.isNormalTarget(player); // is this a "normal" target for another plugin's effects?
UltraReviveAPI.available(); // is UltraRevive installed and active?
- Two Bukkit events, in case you'd rather listen than ask:
PlayerDownedEvent— fires right after someone gets downed; carries the player and how many ticks they'll hold out (fatigue already applied, if applicable).PlayerRevivedEvent— fires whenever a downed state ends, no matter how. Carries the player, who revived them (nullif it was a self-revive, a bleed-out, or a surrender), and a cause:REVIVED,SELF_REVIVED,BLED_OUT, orSURRENDERED. Has asurvived()shortcut that returnstrueonly forREVIVEDandSELF_REVIVED.- A shared metadata flag: while a player is downed, UltraRevive sets the
ultrarevive_downedmetadata (valuetrue) on them. It follows the same visibility metadata convention (vanished) used by plugins like TAB, so UltraReviveAPI can also tell whether a player is in staff vanish mode.
Statistics
/ur stats (or /ur stats <player> if you're an admin) shows:
- how many times you've been downed;
- how many times you've been revived;
- how many teammates you've revived;
- how many times you've self-revived with a totem;
- how many times you've bled out.
They're saved per player in plugins/UltraRevive/stats.yml, written to disk roughly every 30 seconds (and when the server shuts down), and can be turned off entirely by setting stats: false in the config. On top of that, every time a player joins or dies, UltraRevive syncs their deaths, kills, playtime, and experience level into the same file, pulled from the server's normal statistics — handy if you ever want to show everything together in a dashboard or a command of your own.
Frequently Asked Questions
What happens if nobody revives me in time? You bleed out: you really die, under your server's normal death rules (your inventory is lost as applicable). It's exactly like dying in vanilla, just a few seconds after the hit that should have killed you.
Can mobs finish me off while I'm downed?
No, by default (immune-to-mobs: true). If you want them to be able to as well, set it to false.
Can I get back up on my own without anyone's help? Only if you're carrying the Blessed Totem of the Aether or the Unknown Totem of the End; without one of the two, you need another player to crouch next to you.
What happens if I disconnect while downed?
You die (die-on-quit: true by default). Closing the client to "save yourself" doesn't work.
Do I have to accept the resource pack?
No, unless you set resource-pack.force: true. If you don't have it (or you reject it), the three totems look like regular Totems of Undying; the rest of the plugin works exactly the same.
Can I carry all three totems at once? Yes, they're independent items. But watch out for the Cursed Totem of the Nether: if you die while carrying it and don't have a regular totem of undying (without the tag) in hand, you die outright — not even the Aether totem saves you from that specific curse.
Does UltraRevive filter revives by team or clan?
No. Any player with the ultrarevive.revive permission who crouches next to you can revive you, whether they're on your team or not. Clan/faction filtering is left up to a separate clans plugin, if your server uses one.
Does it work on Spigot? No. It's built specifically against the Paper 26.1.2+ API; it won't load on Spigot.
What happens to my settings if I'm coming from UltraRevivir (the previous name)? They migrate on their own the first time the new plugin starts up: config, languages, stats, permissions, and even the totems you've already handed out. See Step-by-Step Installation.
How do I give a player a totem without waiting for them to find one?
With /ur give <self|boost|end> [player] [amount], as an admin.
Version History
1.0 — October 15, 2026
First public release, for Paper 26.1.2 (Java 25). Before this, the plugin was part of a private all-in-one jar; in this version it comes out on its own, with its own thing: downing, reviving, and the three totems.
- Full downing and rescue system: pose, red glow, boss bar, chat buttons, cooperative rescue with a grace period, heartbeat and blood tension in the final seconds, particle beacon, optional fatigue, and optional interruption on damage.
- The three totems (Blessed Totem of the Aether, Cursed Totem of the Nether, Unknown Totem of the End), each with its own texture, drop chance per structure, and its own rules.
- Resource pack served by the plugin itself (or by your own URL), without affecting any other item in the game.
/urcommands and permissions, including backward compatibility with theultrarevivir.*permissions.- A complete
config.yml, plus two full message languages (English and Spanish), with totem names tied to the selected language. - Its own data folder (
plugins/UltraRevive/), with automatic migration from the old shared folder (plugins/UltraView/UltraRevive/). - Public API (
UltraReviveAPI.isDowned,isReviving) and thePlayerDownedEventandPlayerRevivedEventevents. - Migration fixes: the public API was looking up the plugin by a name that no longer existed and always returned
null; finishing off a downed player could process two deaths from the same hit and lose the loot (death is now applied one tick later); totems handed out on earlier installations are still recognized.
Links
- GitHub (open source, MIT license): github.com/GupeLegend/UltraRevive
- Modrinth: modrinth.com/plugin/ultra-revive — the listing isn't live there yet; once it's public, you'll also be able to install it from the launcher or from modpacks.
- Social Studio: gupe.dev