DeathSwap

DeathSwap

Swap positions with a random alive opponent

23 downloads

Swap positions with a random alive opponent and be the last player standing!

» About

DeathSwap is a last-player-standing minigame.

Join a lobby, get teleported into a fresh world, and swap positions with a random alive opponent at regular intervals. Survive, outlast your opponents, and be the last player alive to win!

» Configuration

config.yml
# DeathSwap Configuration

game:
  # Start Countdown — configures the pre-game lobby timer
  min-players-to-start: 2     # Players needed for countdown to begin
  start-delay: 120            # Countdown in seconds (2 min = 120)
  min-players-fast-start: 4   # At 4+ players timer shrinks
  fast-start-delay: 20        # Shortened countdown in seconds

  # In-Game Rules
  swap-interval: 300          # Seconds between swaps
  countdown-seconds: 5        # Warning countdown before each swap
  max-deaths: 5               # Deaths before elimination
  max-match-time: 0           # Max match length in minutes, 0 = unlimited
  pvp-enabled: false          # Allow players to damage each other

display:
  scoreboard: true           # Show the in-match sidebar scoreboard
  actionbar: true            # Show HUD countdowns (lobby start + swap warning)

hide:
  isolate-chat: true          # Keep chat between players in the same match
  isolate-deaths: true        # Keep death messages between players in the same match
  isolate-achievements: true  # Keep advancement messages between players in the same match (Paper only)
  match-players-in-tab: false # Hide players in a match from the tab list of players outside that match (requires PacketEvents)

sounds:
  countdown-tick: entity.note.pling
  countdown-go: entity.experience_orb.pickup
  swap: entity.enderman.teleport
  win: ui.toast.challenge_complete

worlds:
  count: 5                # Number of persistent reusable worlds (each = one concurrent match)
  pre-generate-radius: 7  # Pre-generate spawn chunks around the spawn, 0 = off
  spawn-radius: 100       # Per-world random respawn radius around spawn, 0 = exact spawn
  border: 3000             # World border size in blocks (centered on spawn), 0 = disabled
  name-prefix: ds  # Prefix for generated world names (e.g. "ds_0")
  generate-dimensions: true   # Give every game world its own nether and end (false = share server defaults)

» Commands

Command Aliases Description
/deathswap join /ds join Join the lobby
/deathswap leave /ds leave Leave the lobby or match
/deathswap start /ds start Force-start the game (deathswap.start)
/deathswap stop /ds stop Stop the game (deathswap.stop)
/deathswap setlobby /ds setlobby Set the lobby location (deathswap.setlobby)
/deathswap reload /ds reload Reload the configuration and messages (deathswap.reload)

» Permissions

  • deathswap.start — Force-start the game
  • deathswap.stop — Stop the current game
  • deathswap.setlobby — Set the lobby location
  • deathswap.reload — Reload the configuration and messages

» Features

  • Auto-start lobby with configurable player minimums
  • Timed position swaps with warning countdown
  • Death tracking with configurable lives; last one standing wins
  • Optional match time limit with winner-by-fewest-deaths (and tie messaging)
  • Toggleable sidebar scoreboard and HUD countdowns
  • Scoped match visibility (chat, death, advancement messages) across concurrent matches
  • Optional tab-list hiding of in-match players (requires PacketEvents)
  • PvP toggle, configurable sounds
  • Fresh temporary world per match, deleted on game end
  • Optional per-match nether and end dimensions (own portals per game)
  • Configurable per-world random respawn radius around spawn

» API

DeathSwap provides a public API for integrating with other plugins.

  • Access DeathSwap game and player data
  • Interact with active matches
  • Build integrations with other plugins

» Placeholders

Requires PlaceholderAPI.

The expansion registers under both deathswap and ds, so placeholders can be written as %deathswap_<name>% or %ds_<name>%.

Placeholder Description
%deathswap_state% Player's game state: none, lobby, match or spectator
%deathswap_deaths% Current death count in the match (0 if not in a match)
%deathswap_deaths_left% Deaths remaining before elimination
%deathswap_max_deaths% max-deaths configured limit
%deathswap_players_in_lobby% Players currently waiting in the lobby
%deathswap_min_players% min-players-to-start required to start
%deathswap_swap_interval% swap-interval configured seconds between swaps
%deathswap_next_swap% Live countdown in seconds until the next swap (0 = swapping now; full interval outside a match)

Supported formats

%deathswap_<name>%
%ds_<name>%

No gallery available for this project.