DupesPlus
Turn duplication exploits on or off from an in-game GUI. Paper 1.21.11.
Vanilla Minecraft has a handful of well-known "dupes" (TNT, sand, rails, carpet, end-portal gravity blocks). Paper's default behaviour is a single global switch that either allows all of them or none of them. DupesPlus gives you fine-grained per-type control, all from one chest GUI, with changes saved instantly.
Perfect for SMPs where you want TNT dupes for cannons but no infinite sand farms, or dupe-friendly minigame servers that want an admin panel instead of digging through YAML.
Features
- Toggle TNT, Sand, Rails, Carpet, and End Portal dupes independently
- Clean 27-slot chest GUI opened with
/dupes - Per-dupe settings sub-menu: max blocks per piston action, per-position cooldown
- Rail sub-toggles for powered / detector / activator rails
- Auto-configures Paper's
paper-global.ymlfor you (comment-preserving; tells you when to restart) - Chat commands with full tab-completion
- Ops get an optional broadcast whenever a dupe is toggled
- Zero-allocation fast path — no performance cost when everything is enabled
Installing
- Drop
DupesPlus-1.1.0.jarinto your server'splugins/folder - Restart the server
- On first boot, DupesPlus enables
allow-piston-duplicationinpaper-global.yml. If it changed it, restart one more time so Paper picks it up (the console log tells you) - In-game:
/dupesopens the manager
Commands
| Command | Permission | What it does |
|---|---|---|
/dupes |
dupesplus.use |
Opens the manager GUI |
/dupe help |
dupesplus.admin |
Shows the command list in chat |
/dupe status |
dupesplus.admin |
Shows the current state of every dupe |
/dupe toggle <tnt|sand|rails|carpet> |
dupesplus.admin |
Toggles a piston dupe on/off (live) |
/dupe toggle endportal |
dupesplus.admin |
Toggles the end-portal dupe (restart required) |
/dupe set <type> <setting> <value> |
dupesplus.admin |
Sets a specific value directly |
/dupe reload |
dupesplus.admin |
Reloads config.yml from disk |
Settings for /dupe set: enabled, max-per-cycle, cooldown-ticks, plus include-powered-rails / include-detector-rails / include-activator-rails for rails.
Examples:
Using the GUI
/dupes opens a chest with:
- TNT / Sand / Rail / White Carpet icons — each shows status, max per cycle, and cooldown
- Left-click → toggle on/off
- Shift-right-click → open its settings sub-menu
- End Portal Frame (top row) — toggles the end-portal gravity-block dupe (needs a restart)
- Barrier — close the menu
- Book — runs
/dupe help
Settings sub-menu:
- Anvil — max per cycle: left-click +1, right-click −1, shift adds ±10
- Clock — cooldown ticks: same interaction
- Lever — enabled on/off
- Arrow — back to the main menu
All changes save to config.yml immediately.
Permissions
| Permission | Default | Grants |
|---|---|---|
dupesplus.use |
op | /dupes and the GUI |
dupesplus.admin |
op | all /dupe subcommands |
Compatibility
- Paper 1.21.11 — primary target, tested end-to-end
- Paper 1.21.0 – 1.21.11 — best-effort (uses only Paper API, no NMS)
- Java 21 required
- Not for Spigot/Bukkit (relies on Paper-only mechanics) — not for Folia
Heads-up
DupesPlus rides Paper's allow-piston-duplication and allow-unsafe-end-portal-teleportation, which Paper classifies as unsupported settings. That means Paper can change or remove them in a future update — if they do, no plugin can bring the dupes back. This is a convenience layer for controlling exploits Paper already exposes; it doesn't create them.
Source & License
MIT-licensed. Open source. No telemetry, no external calls, no dependencies beyond the Paper API.
Suggested CurseForge fields:
- Summary (short blurb): Toggle TNT, sand, rail, carpet, and end-portal dupes from an in-game GUI. Per-type control on top of Paper's single global switch.
- Category: Bukkit Plugins
- Tags: Server Utility · Fun · Admin Tools
- Game version: 1.21.11 (also list 1.21 – 1.21.11 as "supported")