Compatibility
Minecraft: Java Edition
26.2
Platforms
Links
Tags
Creators
Details
Licensed ARR
Published yesterday
Updated 6 days ago
ChorusWarp
Simple, fast and fully customizable warps for Paper 26.2 — with hex colors in every message.
ChorusWarp gives your server a clean warp system with a purple, chorus-fruit inspired look. Every single message can be edited, and every message supports hex colors (&#c77dff, #ecc, <#c77dff>) as well as the classic & codes.
Made by Controll3r24.
Features
- 🎨 Every message is editable — all text lives in
messages.yml, nothing is hard-coded. - 🌈 Full hex color support —
&#c77dff,#c77dff,<#c77dff>and short hex like#ecc. Classic&a,&l,&o… still work. - 🟣 Purple by default — prefix, messages and help are all themed in purple out of the box.
- 🌀 Chorus-style effects — configurable sound and particles on departure, arrival and during the warmup.
- ⏳ Warmup & cooldown — cancel on move and/or damage, with an action bar countdown.
- 🛡️ Safe teleports — refuses lava, fire, cactus, magma, the void, and destinations outside the world border.
- 🔐 Per-warp permissions — lock any warp with
/warpperm. - 🖱️ Clickable warp list —
/warpslets players click a warp to teleport. - 📤 Send other players —
/warp <name> <player>. - 🧭 Tab completion — only shows the warps a player is allowed to use.
- ⚡ Lightweight — asynchronous chunk loading, off-thread saving, no dependencies.
Commands
| Command | Description | Permission |
|---|---|---|
/warp <name> [player] |
Teleport to a warp (or send another player) | choruswarp.warp / choruswarp.warp.others |
/warps |
List the warps you can use (clickable) | choruswarp.warp |
/setwarp <name> [overwrite] |
Create or move a warp | choruswarp.setwarp |
/delwarp <name> |
Delete a warp | choruswarp.delwarp |
/renamewarp <old> <new> |
Rename a warp | choruswarp.renamewarp |
/warpinfo <name> |
Show warp details | choruswarp.warpinfo |
/warpperm <name> <on|off> |
Require a permission to use a warp | choruswarp.warpperm |
/choruswarp [help|version|reload] |
Main command (alias /cwarp) |
choruswarp.admin for reload |
Permissions
| Permission | Default | Description |
|---|---|---|
choruswarp.warp |
everyone | Use /warp and /warps |
choruswarp.warpinfo |
everyone | Use /warpinfo |
choruswarp.warp.<name> |
– | Use a locked warp (see /warpperm) |
choruswarp.warp.* |
OP | Use every locked warp |
choruswarp.warp.others |
OP | Send other players to a warp |
choruswarp.setwarp / delwarp / renamewarp / warpperm |
OP | Manage warps |
choruswarp.admin |
OP | Reload the plugin |
choruswarp.bypass.warmup |
OP | Skip the warmup |
choruswarp.bypass.cooldown |
OP | Skip the cooldown |
choruswarp.bypass.safety |
OP | Skip the safe-destination check |
choruswarp.* |
OP | Everything |
Customizing messages
Open plugins/ChorusWarp/messages.yml:
prefix: "b2cbf&l[&#c77dff&lChorus	d4edd&lWarpb2cbf&l] &r"
teleport-success: "{prefix}&#c77dffWhoosh! You were teleported to &#e0aaff{warp}&#c77dff."
- Use
{prefix}to insert the prefix, and the placeholders listed in the comments ({warp},{player},{seconds}…). - Leave a message empty (
"") to disable it. - After editing, run
/choruswarp reload— no restart needed. - New messages added by future updates are appended automatically; your edits are never overwritten.
Configuration
config.yml lets you change the warmup time, cooldown, cancel conditions, the safety check, the maximum name length and the sound/particle effects (any vanilla sound key and particle).
Built to avoid the usual warp-plugin problems
- Case-insensitive names —
Spawnandspawnare the same warp, so there are no duplicates. - No lost warps — saving uses a temporary file and an atomic move; a corrupted
warps.ymlis backed up instead of being wiped. - No lag spikes — the destination chunk is loaded asynchronously before teleporting.
- No teleport exploits — warmup is cancelled on move, damage and logout; the warp is re-checked when the countdown ends, so deleted or newly locked warps can't be used.
- No fatal destinations — lava, fire, void and world border checks.
- Missing worlds are handled — a clear message instead of an error in the console.
- Fully configurable — nothing about the text or behaviour is hard-coded.
Requirements
- Paper 26.2 (or a Paper fork on 26.2)
- Java 25
Folia is not supported.
Support
Found a bug or have a suggestion? Please open an issue on the project page and include your server version and the contents of the console error, if any.


