InventorySwap

Inventory Swap system between players

9

InventorySwap

InventorySwap

InventorySwap is a lightweight plugin that randomly rotates inventories between online players on a configurable timer. No databases, no bloat. Just chaos on a schedule.

Works great on SMP servers, events, or any gamemode where you want to keep players on their toes.

---

How it works

A countdown ticks in the action bar for every player on the server. When it hits zero, inventories rotate — armor, items, offhand included. Players get a title announcement and a sound cue. The timer resets and starts again.

---

Commands

All commands require the `inventoryswap.admin` permission.

| Command | Description | |---|---| | `/invswap interval <seconds>` | Set how often the swap triggers | | `/invswap minplayers <n>` | Minimum online players needed to swap | | `/invswap pause` | Freeze the timer without resetting it | | `/invswap resume` | Resume from where it left off | | `/invswap bypass` | Toggle swap immunity for yourself | | `/invswap lang <en|es>` | Switch between English and Spanish | | `/invswap reload` | Reload config and restart the timer | | `/invswap help` | Show command list in-game |

---

Permissions

| Node | Default | Description | |---|---|---| | `inventoryswap.admin` | OP | Full access to all commands | | `inventoryswap.use` | Everyone | Eligible to participate in swaps | | `inventoryswap.bypass` | Nobody | Immune to swaps entirely |

> Players without `inventoryswap.use` are silently excluded from the rotation. > `inventoryswap.bypass` is separate — useful for staff who want to stay opt-out by default.

---

Configuration

```yaml

config.yml

swap-interval: 300 # seconds between each swap (default: 5 minutes) min-players: 2 # won't swap if fewer players are online language: en # en | es ```

If there aren't enough eligible players when the timer fires, the swap is skipped silently and the timer resets normally.

---

Features

- No restart required visible to all online players at all times - No restart required — freeze the timer mid-countdown, pick up exactly where you left off - No restart required — contents, armor slots and offhand - No restart required — swap only fires when it's worth it - No restart required on every swap - No restart required with sound cues before each swap - No restart required on swap (Portal + End Rod burst, no lag) - No restart required for staff or exempt players - No restart required — English and Spanish out of the box, switchable with a command - No restart required — everything reloads live

---

Compatibility

- Paper / Spigot / Bukkit / and more 1.21.1 - Java 21 - No dependencies

---

Language files

Both `en.yml` and `es.yml` are generated in the plugin folder on first run. Every message, action bar text, title and subtitle is editable. Changes apply on `/invswap reload`.

``` plugins/InventorySwap/ ├── config.yml └── lang/ ├── en.yml └── es.yml ```

ADS