COWMODSКаталог модов

DeathSwap

Swap positions with a random alive opponent

Автор: lokspel2560обновлён 30 окт. 2026 г.
Мини-игрыГенерация мира

Описание

Discord

DeathSwap

Last-player-standing minigame with timed position swaps between alive players.

» About

DeathSwap is a survival minigame where players compete to be the last one standing.

Players join a lobby and are sent into a fresh temporary world when the match starts. At regular intervals, their positions are swapped with random alive opponents. Players must survive until they are the last one standing.

» Matches

Before a match starts, players join the matchmaking queue and wait for the countdown. Players can queue from anywhere without being teleported beforehand.

When the match starts:

  • Players are teleported to a temporary match world
  • A configurable number of lives is assigned to each player
  • PvP and death tracking are enabled according to the configuration
  • Players are distributed around the configured spawn radius

During the match, players are periodically swapped with random alive opponents. A warning countdown is displayed before each swap.

Players who lose all of their lives are eliminated and can spectate the remaining players.

The match ends when only one player remains or when the configured match time expires.

» Worlds

DeathSwap supports temporary worlds for each match.

Worlds can either be:

  • Created as a brand-new world for every match
  • Taken from a reusable world pool

Nether and End dimensions can optionally be enabled for each match.

Each match world supports configurable:

  • Spawn radius
  • World border
  • Nether and End dimensions

Multiple matches can run simultaneously, with each match isolated in its own world.

» Commands

CommandAliasesDescriptionPermission
/deathswap join/ds joinJoin the match queue—
/deathswap leave/ds leaveLeave the queue or match—
/deathswap start/ds startForce-start the gamedeathswap.start
/deathswap stop/ds stopStop the gamedeathswap.stop
/deathswap setlobby/ds setlobbySet the post-match return locationdeathswap.setlobby
/deathswap reload/ds reloadReload config and messagesdeathswap.reload

» Tab List Hiding

When hide.match-players-in-tab is enabled and PacketEvents is installed, players outside a match cannot see its participants in the tab list.

Each match only displays its own participants, while lobby players remain separate from active matches.

Match visibility also scopes chat, death, and advancement messages between concurrent matches.

Note: Advancement message isolation requires Paper and is unavailable on Spigot.

» Placeholders

Requires PlaceholderAPI.

The expansion is available under both deathswap and ds.

PlaceholderDescription
%deathswap_state%Player's current state: none, lobby, match, or spectator
%deathswap_deaths%Current death count (0 outside a match)
%deathswap_deaths_left%Deaths remaining before elimination
%deathswap_max_deaths%Configured maximum deaths
%deathswap_players_in_lobby%Players currently waiting in the lobby
%deathswap_min_players%Minimum players required to start
%deathswap_swap_interval%Configured swap interval in seconds
%deathswap_next_swap%Seconds until the next swap

» Requirements

  • Java 25
  • Spigot or Paper
  • Minecraft 1.21.11, 26.1, or 26.2
  • Optional: PacketEvents for match player tab-list hiding
  • Optional: PlaceholderAPI for placeholders

» Build

gradlew build

Enjoy DeathSwap!

Последние версии

Все версии →
release

DeathSwap 1.1.0

1.1.0
30 окт. 2026 г.13Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
### 🚀 Improvements & Refactoring * **Modular Sub-Command System (`/deathswap`, `/ds`)** * Restructured into dedicated sub-commands: `/ds join`, `/ds leave`, `/ds start`, `/ds stop`, `/ds reload`, and nested `/ds set lobby`. * Added dynamic tab-completion with input prefix filtering across all arguments. * Removed obsolete command boilerplate and configuration entries from `settings.yml`. * **Player State Management (`PlayerStateManager`)** * Centralized inventory, health, hunger, gamemode, and potion effect preservation during matches. * Ensures safe recovery (`restoreAll()`) if a match ends unexpectedly or players disconnect. * **Dynamic Permissions & Lifecycle** * Migrated all permissions (`deathswap.command.*`) to dynamic runtime registration, removing static declarations from `plugin.yml`. * Silenced verbose startup and shutdown console logging. * **Messaging & Formatting (`MessageUtil`)** * Added `<prefix>` placeholder support alongside `{prefix}` and `%prefix%`. * Improved configuration reload error handling with formatted in-game feedback.
release

DeathSwap 1.0.9

1.0.9
24 окт. 2026 г.35Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
### Fixes - Fixed death screen freezing after a match ends — dead players are now auto-respawned and match cleanup is deferred to the next tick. - Fixed a thread-safety race condition in async chat handling (no more `ConcurrentModificationException`). - Fixed Nether and End teleports being treated as leaving the match when portals are used. - Fixed player spawns at match start: players are now distributed across the spawn radius instead of all appearing at one point. - `/ds leave` now properly restores inventory, health, XP and effects. - Fixed alive-player counting: eliminated players awaiting respawn are no longer counted. - Fixed `pvp-enabled` handling for projectile damage. - Lobby start countdown is no longer reset while enough players remain. - Guaranteed a true derangement of all alive players during swaps (no player keeps their position). - Fixed world deletion: selective region/entity/POI cleanup, unload verification before deletion, corrected chunk pregeneration and proper pool shrinkage on reload. - World settings (`name-prefix`, `generate-dimensions`, `generate-on-start`, pool expansion) now apply immediately after `/ds reload`. - Teleports are now validated against the current match's dimensions instead of the global world pool. - The world retry task is properly cancelled on stop/match creation, and `min-players-to-start` is enforced. ### Changes - Swaps now affect all alive players; `PlayerSwapEvent` exposes the full player list. - The lobby now acts as a virtual matchmaking queue without forcing a gamemode change. - Removed Folia from the supported platforms list in the README. - Simplified `PlayerSwapEvent` and removed redundant config handling in `onEnable`.
release

DeathSwap 1.0.8

1.0.8
18 окт. 2026 г.52Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
- **Refactored configuration to Configura 2.1 & Strata 2.0:** - Replaced legacy section wrappers with pure POJO models (`settings/`, `messages/`, `backed/`). - Added `DeathSwapConfig` facade with automatic migrations and schema comments. - Removed redundant resource files (`config.yml`, `messages.yml`, `backed.yml`). - **Introduced `MessageUtil`:** Centralized MiniMessage parsing, placeholder handling, and message dispatching. - **Added Gradle Version Catalog (`libs.versions.toml`):** Moved dependencies and plugins into version catalogs with bundles (`adventure`, `configura`, `strata`). - **Dependency bump:** Updated `spigot-api` to `26.3-R0.1-SNAPSHOT`.
release

DeathSwap 1.0.7

1.0.7
10 окт. 2026 г.38Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
### Added - Added support for executing end-of-round commands as either the player or the console, configurable per command.
release

DeathSwap 1.0.6

1.0.6
9 окт. 2026 г.10Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
### Added * Added FastStats metrics. * Added `backed.yml` for lobby storage. ### Changed * Migrated the build from Maven to Gradle. * Replaced the `LobbySection` wrapper with `BackedConfig`. * Improved `messages.yml` wording and removed redundant color tags. * Reformatted comments in `config.yml` and `messages.yml`. ### Fixed * Fixed active players remaining in a match after teleporting out of the game world.
release

DeathSwap 1.0.5

1.0.5
26 сент. 2026 г.30Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
### Added - `worlds.generate-on-start` option. When enabled, a brand-new world is generated when a match starts instead of handing out one of the pre-generated worlds, so the number of simultaneous matches is no longer capped by `worlds.count`. Such worlds are deleted after the match rather than recycled, and the pool is not built at all on startup. ### Changed - Players waiting in the lobby are now told that the world is being prepared as soon as generation starts, instead of only after it has finished. - `world-preparing` is no longer sent once the match is already running. - Lobby teleports no longer go through the world pool, which only cares about game worlds.
release

Deathswap 1.0.4

1.0.4
7 сент. 2026 г.31Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, paper, purpur, spigot
Скачать
Что нового
### Compatibility & Fixes * 🔌 **Added Spigot support** with cross-platform Paper/Spigot compatibility * 🏠 **Added lobby requirement** — matches can no longer be started without a configured lobby * 🌍 **Fixed world listener** to correctly use the configured name prefix
release

Deathswap 1.0.3

1.0.3
1 сент. 2026 г.12Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
### Refactored * 🧩 **Reworked command dispatcher** with a dedicated subcommand system * 💡 **Added tab completion** for `/deathswap`
release

Deathswap 1.0.2

1.0.2
14 авг. 2026 г.8Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
* Added death and advancement message isolation per match (`isolate-deaths`, `isolate-achievements`) * Added optional tab-list hiding for in-match players (`match-players-in-tab`, requires PacketEvents) * Moved chat, death, and advancement isolation into the new `hide` config section * Moved scoreboard and actionbar settings into the `display` config section * `/deathswap reload` now re-applies tab hiding to running matches * Bug fixes and config cleanup
release

Deathswap 1.0.1

1.0.1
12 авг. 2026 г.7Minecraft: 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
## Massive World Loading Optimization Major improvements to world loading and generation. ### ⚡ What's New - Faster world loading - Maximum match time configuration - Random spawn radius - Per-world border support - Custom world name prefixes - Individual Nether & End dimensions ### ⚙️ New Configuration Options ```yaml max-match-time: 0 # Max match length in minutes, 0 = unlimited 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 ``` ### 🔌 API A new public API is now available for integrating DeathSwap with other plugins. - Access DeathSwap game and player data - Interact with DeathSwap matches - Easier integration with other plugins ### 🔤 PlaceholderAPI Requires [PlaceholderAPI](https://placeholderapi.com/). The expansion registers under both `deathswap` and `ds`. Both formats are supported: ```text %deathswap_<name>% %ds_<name>% ``` ### Available Placeholders | 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%` | Configured `max-deaths` limit | | `%deathswap_players_in_lobby%` | Players currently waiting in the lobby | | `%deathswap_min_players%` | Required players to start | | `%deathswap_swap_interval%` | Configured seconds between swaps | | `%deathswap_next_swap%` | Seconds until the next swap (`0` = swapping now; full interval outside a match) |