Sueta

NexusRevive

1.0.3

Advanced downed, revive, carry, loot, GPS, and zone system

·Plugin

❤️ NexusRevive

Modern downed and revive system for Paper servers

Version: 1.0.1 | Compatibility: 1.19.4 to 26.1+ (and forks)

🎮 Support Discord


NexusRevive replaces instant death with a full downed system built for modern survival and PvP servers.

Down players instead of killing them, carry them to safety, revive them manually or automatically inside zones, track them with a configurable GPS, and fully customize the experience with config.yml, messages.yml, and gps.yml.


Screenshots

Player Downed

downed

GPS

gps

Carry

carry

loot player downed

Loot player Downed


Main Features

Downed State

  • Players fall into a downed state instead of dying instantly
  • Custom downed pose with real 1.21.x NMS support
  • Death timer, invulnerability window, actionbar, scoreboard, and sounds
  • Configurable potion effects while downed, including effects like DARKNESS

Manual Revive and Carry

  • Revive by holding shift near the downed player
  • Carry downed players on your head and move them to safer locations
  • Prevent reviving while carrying
  • Optional item requirement to revive

Auto-Revive Zones

  • Create revive zones with /nr zone wand
  • Auto-revive players when they are inside a zone
  • Zone speed multipliers
  • Visual finish effect when auto-revive completes

GPS System

  • Track downed players from a GUI menu
  • GPS display modes:
    • BOSSBAR
    • ACTIONBAR
    • HOLOGRAM
    • BOSSBAR_AND_HOLOGRAM
  • Configurable arrows, distance display, and hologram behavior

Safe Loot System

  • Open a controlled loot menu with shift + right click
  • Loot inventory, armor, and offhand
  • Session locking to reduce desync and duplication risk
  • Closes automatically if the target revives, dies, disconnects, or changes state

Hooks and Integrations

  • Vault
  • WorldGuard
  • DeluxeCombat
  • PlaceholderAPI

WorldGuard Flags

  • nexus-revive - controls reviving
  • nexus-revive-carry - controls carrying
  • nexus-revive-loot - controls looting

Example:

/rg flag hospital nexus-revive allow
/rg flag warzone nexus-revive-carry deny
/rg flag spawn nexus-revive-loot deny

Commands and Permissions

Main Command:

  • /nexusrevive
  • /nr (alias)

Commands:

  • /nr reload - Reload config, messages, gps, and zones (nexusrevive.command.reload)
  • /nr down <player> - Force the downed state (nexusrevive.command.down)
  • /nr revive <player> - Revive a downed player (nexusrevive.command.revive)
  • /nr kill <player> - Permanently kill a downed player (nexusrevive.command.kill)
  • /nr gps - Open the downed player tracker (nexusrevive.command.gps)
  • /nr zone wand - Get the zone wand (nexusrevive.command.zone)
  • /nr zone create <name> - Create a revive zone from your selection (nexusrevive.command.zone)
  • /nr zone remove <name> - Remove a revive zone (nexusrevive.command.zone)
  • /nr zone list - List revive zones (nexusrevive.command.zone)
  • /nr zone speed <name> <multiplier> - Change zone revive speed (nexusrevive.command.zone)

Player Permissions:

  • nexusrevive.revivable
  • nexusrevive.reviver
  • nexusrevive.pickable
  • nexusrevive.picker
  • nexusrevive.lootable
  • nexusrevive.robber
  • nexusrevive.downable

PlaceholderAPI

Identifier:

%nexusrevive_<placeholder>%

Available placeholders include:

  • status
  • death_delay
  • invulnerability
  • reviver
  • picker
  • attacker
  • victim
  • progress
  • auto_revive_zone
  • in_auto_revive_zone
  • auto_reviving
  • death_delay_bar
  • invulnerability_bar
  • progress_bar

API and Events

Main API class:

com.aquiles.nexusrevive.api.NexusReviveAPI

Useful methods:

NexusReviveAPI.isAvailable();
NexusReviveAPI.isDowned(player);
NexusReviveAPI.isReviving(player);
NexusReviveAPI.getDownedPlayer(player);
NexusReviveAPI.getReviveVictim(player);
NexusReviveAPI.getDownedPlayers();
NexusReviveAPI.revivePlayer(player);
NexusReviveAPI.revivePlayer(player, reviver);
NexusReviveAPI.killDowned(player);
NexusReviveAPI.downPlayer(player);

Events:

  • PlayerDownedEvent
  • PlayerStartReviveEvent
  • PlayerStopReviveEvent
  • PlayerReviveEvent
  • PlayerPickupDownedEvent
  • PlayerDropDownedEvent
  • PlayerFinalDeathEvent

Configuration Previews

config.yml preview
# ==========================================================
# NexusRevive - Main configuration
# ==========================================================
# This file controls the general plugin behavior:
# downed state, revive, carrying players, sounds, and hooks.
#
# Recommendation:
# 1. Change one section at a time.
# 2. Save the file.
# 3. Use /nr reload to apply simple changes.
# ==========================================================

mechanics:
  # Health the player will have after entering the downed state.
  # 1.0 = half a heart, 2.0 = one heart, etc.
  downed-health: 1.0

  # Movement speed while the player is downed.
  # 0.2 is normal vanilla player speed.
  downed-walk-speed: 0.06

  # Total time in seconds before the downed player dies permanently.
  death-delay-seconds: 75

  # Seconds during which a newly downed player cannot be finished off.
  invulnerability-seconds: 15

  # Health the player will have after being revived.
  revived-health: 6.0

  # Delay in ticks before applying the downed pose.
  # 20 ticks = 1 second.
  # Useful to show the hit impact before dropping to the ground.
  downed-entry-delay-ticks: 4

  # Horizontal knockback when entering the downed state.
  # Increase this for a more dramatic fall.
  downed-entry-knockback-horizontal: 0.16

  # Vertical knockback when entering the downed state.
  # Lower values make the fall look more natural.
  downed-entry-knockback-vertical: 0.08

  # What should happen when the downed timer runs out:
  # KILL   = die permanently
  # REVIVE = stand back up automatically
  death-action: KILL

  # If the player disconnects while downed:
  # true  = dies / state is cleared
  # false = keeps the downed state on reconnect
  kill-on-disconnect: true

  # Hide the death message when the player dies permanently while downed.
  disable-death-message-while-downed: true

revive:
  # Time in seconds required to complete a revive.
  duration-seconds: 10

  # Whether the reviver must keep sneaking to continue reviving.
  require-sneak: true

  # Allow a downed player to revive themselves.
  allow-self-revive: false

  # Maximum distance to start a revive.
  start-distance: 2.0

  # If the reviver moves farther than this, the revive is cancelled.
  cancel-distance: 4.5

  # Where players can be revived:
  # ANYWHERE      = anywhere
  # ONLY_IN_ZONES = only inside zones created with /nr zone
  zone-mode: ANYWHERE

  # Whether revive zones affect revive speed.
  # true  = the zone speed multiplier affects revive duration
  # false = every zone revives at the same speed
  zones-affect-speed: true

  auto-revive-finish-effect:
    # Visual/audio effect played when an auto-revive finishes inside a zone.
    enabled: true

    primary-particle:
      enabled: true
      particle: TOTEM_OF_UNDYING
      count: 32
      offset-x: 0.45
      offset-y: 0.70
      offset-z: 0.45
      extra: 0.0

    secondary-particle:
      enabled: true
      particle: HAPPY_VILLAGER
      count: 18
      offset-x: 0.40
      offset-y: 0.60
      offset-z: 0.40
      extra: 0.0

    sound:
      enabled: true
      sound: ITEM_TOTEM_USE
      volume: 0.9
      pitch: 1.15

  required-item:
    # Require a valid item in hand or offhand to revive.
    enabled: false

    # Consume 1 item from the matching stack on successful revive.
    consume-on-success: true

    # NexusRevive checks both main hand and offhand.
    # If either hand matches a rule, the revive is allowed.
    items:
      revive_kit:
        material: PAPER
        has_custom_model_data: false
        custom_model_data: 0
        name_contains: "&eRevive Kit"

carry:
  # Whether downed players can be carried.
  enabled: true

  # If the carrier takes damage:
  # true  = drop the downed player
  # false = keep carrying
  drop-on-picker-damage: false

  # Pause the death timer while the player is being carried.
  stop-death-timer-while-carried: false

  # Allow the downed player to dismount by themselves.
  allow-downed-dismount: false

loot:
  # Allow looting downed players with shift + right click.
  enabled: true

  # Temporary debug for the loot system.
  # true  = prints detailed logs when opening/clicking/closing the menu
  # false = hides those logs
  debug: false

  # Require sneaking while right-clicking to open loot.
  require-sneak: true

  # Allow only one player to keep a loot session open per victim.
  # Recommended: true, for a safer and more predictable flow.
  single-robber-lock: true

  # Allow looting a downed player while someone is reviving them.
  allow-while-reviving: false

  # Allow looting a downed player while someone is carrying them.
  allow-while-carried: false

  # Allow looting the main inventory and hotbar.
  allow-main-inventory: true

  # Allow looting armor slots.
  allow-armor: true

  # Allow looting the offhand slot.
  allow-offhand: true

persistence:
  # Save states.yml to disk.
  # true  = keeps downed states and pending deaths across restarts
  # false = does not load or save states.yml
  enabled: false

updater:
  # Check for updates on startup.
  # The update URL is hardcoded in the plugin and cannot be edited here.
  enabled: true

sounds:
  # Sound played while revive progress is happening.
  # cooldown-ticks prevents it from repeating too often.
  # 20 ticks = 1 second.
  reliving:
    enabled: true
    sound: BLOCK_NOTE_BLOCK_HARP
    volume: 1.0
    pitch: 1.0
    cooldown-ticks: 20

  # Sound played when a revive starts.
  start-reliving:
    enabled: true
    sound: BLOCK_NOTE_BLOCK_HARP
    volume: 1.0
    pitch: 1.0
    cooldown-ticks: 0

  # Sound played when a revive is stopped or cancelled.
  stop-reliving:
    enabled: true
    sound: BLOCK_NOTE_BLOCK_HARP
    volume: 1.0
    pitch: 1.0
    cooldown-ticks: 0

  # Sound played when a revive completes.
  success-relive:
    enabled: true
    sound: BLOCK_NOTE_BLOCK_HARP
    volume: 1.0
    pitch: 1.0
    cooldown-ticks: 0

downed-effects:
  # Apply potion effects while the player is downed.
  # These effects are removed automatically when the player revives,
  # dies, or leaves the downed state.
  enabled: true

  # You can remove, edit, or add entries here.
  # The "type" field accepts vanilla effect names such as:
  # SLOWNESS, WEAKNESS, DARKNESS, BLINDNESS, SLOW_FALLING, etc.
  effects:
    slowness:
      type: SLOWNESS
      amplifier: 6
      ambient: false
      particles: false
      icon: false

    weakness:
      type: WEAKNESS
      amplifier: 1
      ambient: false
      particles: false
      icon: false

    # Optional example:
    # darkness:
    #   type: DARKNESS
    #   amplifier: 0
    #   ambient: false
    #   particles: false
    #   icon: false

suicide:
  # Allow the downed player to commit suicide by holding shift.
  enabled: true

  # How many seconds the player must hold shift.
  hold-seconds: 5

restrictions:
  worlds:
    # World control:
    # BLACKLIST = works in every world except the listed ones
    # WHITELIST = works only in the listed worlds
    mode: BLACKLIST

    # World list used by the mode above.
    list:
      - example_world_disabled

  # Damage causes ignored by the downed system.
  # Example: if you add VOID, falling into the void will kill normally.
  ignored-damage-causes:
    - VOID

downed-interactions:
  # Allow movement while downed.
  allow-move: true

  # Allow general block interaction while downed.
  allow-interact: false

  # Allow entity interaction while downed.
  allow-entity-interact: false

  # Allow breaking blocks while downed.
  allow-block-break: false

  # Allow placing blocks while downed.
  allow-block-place: false

  # Allow teleports or teleport-like commands while downed.
  allow-teleport: false

  # Allow shooting / throwing projectiles while downed.
  allow-projectiles: false

  # Allow eating or drinking consumable items while downed.
  allow-consume: false

  # Allow moving items in the main inventory and hotbar while downed.
  # This does not control offhand or armor slots.
  allow-inventory: false

  # Allow using or swapping the offhand slot while downed.
  allow-offhand: false

  # Allow changing the helmet slot while downed.
  allow-helmet: false

  # Allow changing the chestplate slot while downed.
  allow-chestplate: false

  # Allow changing the leggings slot while downed.
  allow-leggings: false

  # Allow changing the boots slot while downed.
  allow-boots: false

  # Allow dropping items while downed.
  allow-item-drop: false

  # Allow picking up items while downed.
  allow-item-pickup: false

  # Allow using elytra while downed.
  allow-gliding: false

  # Allow taking fall damage while downed.
  allow-fall-damage: false

  # Maximum fall distance allowed for downing.
  # -1 = unlimited
  # If the player falls farther than this, they will not enter downed state.
  max-fall-distance: -1

commands:
  # Command control while the player is downed.
  # BLACKLIST = blocks only the listed commands
  # WHITELIST = allows only the listed commands
  #
  # /nr and /nexusrevive are always allowed separately.
  mode: BLACKLIST
  list: []

hooks:
  vault:
    # Vault hook for revive cost.
    # Works only if Vault and an economy plugin are installed.
    enabled: true

    # Revive cost.
    # 0.0 = free
    revive-cost: 0.0

  worldguard:
    # WorldGuard hook.
    enabled: true

    # NexusRevive registers these region flags:
    # nexus-revive
    # nexus-revive-carry
    # nexus-revive-loot
    #
    # nexus-revive:
    # Controls only reviving.
    #
    # nexus-revive-carry:
    # Controls only carrying downed players.
    #
    # nexus-revive-loot:
    # Controls only looting downed players.
    #
    # If a flag is ALLOW, the action is allowed there.
    # If a flag is DENY, the action is blocked there.
    # If a flag is not defined, NexusRevive will not block that action by WorldGuard.
    #
    # Example:
    # /rg flag <region> nexus-revive allow
    # /rg flag <region> nexus-revive-carry deny
    # /rg flag <region> nexus-revive-loot deny

  deluxecombat:
    # DeluxeCombat hook.
    enabled: true

    # Allow reviving while one of the players is in combat.
    allow-revive-in-combat: true

    # Allow carrying while one of the players is in combat.
    allow-carry-in-combat: false

    # Respect DeluxeCombat PvP protection when trying to down players.
    respect-pvp-protection: true

scoreboard:
  # Show a personal NexusRevive scoreboard.
  enabled: true

  # Update interval in ticks.
  # 10 ticks = 0.5 seconds.
  update-interval-ticks: 10

  # Show a scoreboard for the downed player.
  show-for-downed: true

  # Show a scoreboard for the player who is reviving.
  show-for-reviver: true

  # Show a scoreboard for the player carrying a downed target.
  show-for-picker: true

events:
  # Command-based event system.
  # Each entry accepts a list of commands.
  #
  # Supported senders:
  # [console] = run as console
  # [victim]  = run as the downed player
  # [attacker]= run as the attacker if present
  # [reviver] = run as the reviver
  # [picker]  = run as the carrier
  #
  # Available placeholders:
  # <victim> <attacker> <reviver> <picker>
  # <world> <x> <y> <z>
  #
  # Example:
  # - "[console] broadcast &c<victim> has been downed in <world> (<x>, <y>, <z>)"

  player-downed:
    # Fired when a player enters the downed state.
    enabled: false
    commands:
      - "[console] say <victim> has been downed."

  player-start-revive:
    # Fired when someone starts reviving a downed player.
    enabled: false
    commands:
      - "[console] say <reviver> started reviving <victim>."

  player-stop-revive:
    # Fired when a revive is interrupted or cancelled.
    enabled: false
    commands:
      - "[console] say The revive of <victim> was cancelled."

  player-revived:
    # Fired when a revive completes successfully.
    enabled: false
    commands:
      - "[console] say <victim> has been revived."

  player-picked-up:
    # Fired when a player carries a downed target.
    enabled: false
    commands:
      - "[console] say <picker> is carrying <victim>."

  player-dropped:
    # Fired when a carried downed target is dropped.
    enabled: false
    commands:
      - "[console] say <picker> dropped <victim>."

  player-final-death:
    # Fired when a downed player dies permanently.
    enabled: false
    commands:
      - "[console] say <victim> died permanently."

# ==========================================================
# PlaceholderAPI
# ==========================================================
# If PlaceholderAPI is installed, NexusRevive registers
# internal placeholders with the identifier:
# %nexusrevive_<placeholder>%
#
# Available:
# %nexusrevive_status%
# %nexusrevive_death_delay%
# %nexusrevive_invulnerability%
# %nexusrevive_reviver%
# %nexusrevive_picker%
# %nexusrevive_attacker%
# %nexusrevive_victim%
# %nexusrevive_progress%
# %nexusrevive_auto_revive_zone%
# %nexusrevive_in_auto_revive_zone%
# %nexusrevive_auto_reviving%
# %nexusrevive_death_delay_bar%
# %nexusrevive_invulnerability_bar%
# %nexusrevive_progress_bar%
#
# Note:
# If persistence.enabled is true, NexusRevive saves
# temporary states in states.yml to support reconnects,
# restarts, and pending deaths.
messages.yml preview
general:
  prefix: "&8[&b&lNexusRevive&8] &7"
  no-permission: "&#ff5555You do not have permission to do that."
  only-player: "&#ff5555Only a player can use this command."
  player-not-found: "&#ff5555That player could not be found online."
  blocked-command: "&#ff5555You are downed. Use /nr or wait for help."
  reloaded: "&#55ff55Configurations reloaded successfully."

victim:
  downed: |-
    &#ff6b6bYou are downed.
    &7You need help to get back on your feet.
    &8- &fFinal death in: &c<death_delay>s
    &8- &fSafe window: &e<invulnerability>s
  reconnected-downed: "&#ffaa00You are still downed. You have &#ffffff<death_delay>s &#ffaa00left to receive help."
  start-revive: "&#55ffff<reviver> has started reviving you."
  stop-revive: "&#aaaaaa<reviver> interrupted the revive."
  revived: "&#55ff55You have been revived successfully."
  picked-up: "&#55ffff<picker> is carrying you."
  dropped: "&#ffaa00You were placed back on the ground."

attacker:
  downed: "&#ff5555You downed &#ffffff<victim>&#ff5555."

reviver:
  start: "&#55ffffYou started reviving &#ffffff<victim>&#55ffff."
  stop: "&#aaaaaaThe revive of &#ffffff<victim> &#aaaaaawas cancelled."
  success: "&#55ff55You revived &#ffffff<victim>&#55ff55."
  zone-required: "&#ff5555That player must be inside a revive zone."
  carry-blocked: "&#ff5555You cannot revive a p

Similar projects

Plugin →