
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.useare silently excluded from the rotation.inventoryswap.bypassis separate — useful for staff who want to stay opt-out by default.
Configuration
# 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
- Action bar countdown visible to all online players at all times
- Pause / Resume — freeze the timer mid-countdown, pick up exactly where you left off
- Full inventory swap — contents, armor slots and offhand
- Configurable minimum players — swap only fires when it's worth it
- Title + subtitle announcement on every swap
- 5-second countdown titles with sound cues before each swap
- Subtle particle and sound effects on swap (Portal + End Rod burst, no lag)
- Per-player bypass toggle for staff or exempt players
- Bilingual — 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
