CannonRTP (WorldCannon)
CannonRTP is a multi-cannon random-teleportation plugin for Minecraft servers. The project is named WorldCannon internally, but the plugin registers as CannonRTP in Bukkit and that is the name players and admins see.
Key naming details:
- Plugin name:
CannonRTP - Root command:
/cannonrtp - Aliases:
/crtp,/wc - Permissions:
cannonrtp.admin,cannonrtp.use - Config folder:
plugins/CannonRTP/
What It Does
CannonRTP is a multi-cannon random-landing system rather than a single fixed launcher.
Each cannon can:
- watch for players entering a trigger radius
- preload and maintain a queue of safe landing locations in a configured target world
- reject unsafe terrain, blocked spaces, and protected land
- optionally require an extra per-cannon permission
- launch players through a levitation phase with coordinate preview, vertical boost, teleport, and slow-fall sequence
- optionally display a FreeMinecraftModels custom model at the cannon location (per-cannon or via a global priority list)
Launch Flow
When a player walks into an eligible cannon's trigger radius:
- CannonRTP checks
cannonrtp.use. - It checks the cannon's optional
requiredPermission. - It verifies the cannon is enabled, has a valid configuration, and has preloaded landing locations.
- It consumes one preloaded safe landing location from that cannon's queue.
- Searching phase (66 ticks / ~3.3 seconds): the player gets Levitation and sees title/subtitle displays with randomized coordinate previews. If the cannon has a custom model, the model's
fireanimation plays. - Firing phase: Levitation is removed, the blast-off sound plays, and vertical boost is applied for the configured number of ticks. The true destination coordinates are revealed.
- Teleporting phase: the player is teleported 50 blocks above the destination and Slow Falling is applied.
- Dropping phase: the player drifts down. A smoke trail renders during the fall.
- Landing phase: Slow Falling is removed when the player touches the ground (or the maximum duration expires) and an impact particle burst plays.
Landing Safety Rules
Before a location is accepted into the preload queue, the current code checks:
- the target world is loaded
- the search center is valid
- the location is inside the world border
- a highest safe surface exists (solid, non-liquid, non-air)
- the feet and head spaces are passable
- the landing surface is not in the configured unsafe ground materials list
- the feet and head blocks are not in the configured unsafe body materials list
- all enabled protection plugin integrations allow the location
Cannon States
Each cannon has an internal state visible via /wc status:
| Display | Internal State | Meaning |
|---|---|---|
| Disabled | -- | The cannon is explicitly disabled in its config |
| Charging | SEARCHING (queue empty) | Still preloading its first batch of safe locations |
| Maintaining | SEARCHING (queue not empty) | Has some locations but is still refilling consumed slots |
| Ready | READY | Has enough preloaded locations to launch players |
| Exhausted | EXHAUSTED | Timed out without finding enough valid locations |
| Invalid | INVALID_CONFIGURATION | Configuration error (e.g. unloaded target world) |
A cannon becomes launch-ready once it has stored at least chargedLocationsPerCannon valid destinations.
Runtime Expectations
- Minecraft API:
1.21 - Java:
21 - Recommended server software: Paper or a current compatible fork
- Optional dependency: FreeMinecraftModels (for custom cannon models)