Skip to main content

CannonRTP Messages and Titles

All player-facing strings live in plugins/CannonRTP/messages.yml and are fully overridable. Every value supports MagmaCore gradients (<gradient:#start:#end>...</gradient>), MiniMessage tags, and legacy & color codes. The $prefix placeholder in any message is replaced with the configured prefix value.

Release 1 ships English-only; the language key in config.yml exists so future translation packs can target it.

Prefix and Help Header

KeyPlaceholdersDefaultDescription
prefix--<gradient:#ff9a3d:#ffd166>CannonRTP</gradient> &8|Prefix injected into every message via $prefix
helpHeader$prefix$prefix &fCannonRTP commands:Greeting line printed at the top of /cannonrtp, /wc help, and /wc list / /wc status

Chat Messages

KeyPlaceholdersDescription
createdCannon$prefix, $cannon, $id, $pathSent after /wc create succeeds
placedCannon$prefix, $cannonSent after /wc place succeeds
removedCannon$prefix, $cannonSent after /wc remove succeeds
deletedCannon$prefix, $cannonSent after /wc delete succeeds
targetWorldUpdated$prefix, $cannon, $worldSent after /wc target succeeds
searchCenterUpdated$prefix, $cannonSent after /wc center succeeds
reload$prefix, $countSent after /wc reload finishes
noPermission$prefix, $cannonSent when a player walks into a cannon they lack requiredPermission for (throttled to once every 3 seconds per player per cannon)
cannonDisabled$prefix, $cannonSent when a player steps into a disabled cannon
queueCalibration$prefix, $cannon, $queued, $target, $attemptsSent while a cannon is still preloading and a player walks in. In this message $target is chargedLocationsPerCannon; $attempts is the remaining search-attempt budget before the cannon exhausts
noValidLocationYet$prefix, $cannonSent when no safe location has been queued yet
noValidLocationFound$prefix, $cannon, $reasonSent when CannonRTP gives up after exhausting searchTimeoutAttempts. $reason is a comma-separated summary of the most common rejection reasons
invalidConfiguration$prefix, $cannon, $reasonSent when a configuration error is detected (e.g. unloaded target world)
statusLine$prefix, $cannon, $status, $queued, $target, $reasonLine format used for each row of /wc list and /wc status. In this message $target is preloadedLocationsPerCannon (the full reserve target, not the charged threshold)
probeAllowed$prefixSent by /wc probe when the location is valid
probeBlocked$prefix, $plugin, $reasonSent by /wc probe when the location is blocked
unknownCommand$prefixSent when an admin uses an unrecognized subcommand

Title Pools

Several title slots in the launch sequence are configured as a list rather than a single string. Each launch, CannonRTP picks one entry at random from the list. This keeps repeated launches from feeling identical.

KeyPlaceholdersPhaseDescription
titles.launchQueuedTitles--start of SEARCHINGPool of title strings shown when a launch starts
titles.launchQueuedSubtitles$cannonstart of SEARCHINGPool of subtitles paired with the launch start title
titles.destinationPreviewTitles--SEARCHING (every tick)Pool of titles shown while randomized coordinates flicker by
titles.destinationPreviewSubtitle$x, $y, $zSEARCHING (every tick)Single subtitle string showing the flickering randomized coordinates
titles.destinationConfirmedTitles--start of FIRINGPool of titles shown the moment the true destination is locked in
titles.destinationConfirmedSubtitle$x, $y, $z, $worldstart of FIRINGSingle subtitle showing the real destination
titles.arrivalTitles--TELEPORTINGPool of titles shown right after the airdrop teleport
titles.arrivalSubtitles--TELEPORTINGPool of subtitles shown alongside the arrival title

Single vs. pool

destinationPreviewSubtitle and destinationConfirmedSubtitle are single strings because they contain dynamic coordinates that must always be rendered. The other title and subtitle slots are pools and are randomized per launch.

Default Title Pools

The defaults shipped in messages.yml:

launchQueuedTitles -- Launching, Ignition, Liftoff (orange-gold gradient)

launchQueuedSubtitles -- $cannon (warm gold)

destinationPreviewTitles -- Calibrating, Scanning, Targeting (orange-gold)

destinationConfirmedTitles -- Locked, Set, Engaged (green)

arrivalTitles -- Arrived, Touchdown, Airborne (cool white)

arrivalSubtitles -- Good luck., Stick the landing., Eyes up. Ground soon., Wind check complete. Good luck., Drop zone acquired. Good luck.

Placeholder Reference

PlaceholderResolved to
$prefixThe value of messages.yml -> prefix
$cannonThe cannon's displayName
$idThe cannon's config id (sanitized lowercase)
$pathAbsolute path to the freshly created cannon config file (only in createdCannon)
$worldTarget world name
$countNumber of cannons loaded after a reload
$queuedCurrent queue size for a cannon
$targetContext-dependent: chargedLocationsPerCannon in queueCalibration, preloadedLocationsPerCannon in statusLine. Both keys live in landing.yml.
$attemptsRemaining search attempts before the cannon exhausts
$statusOne of Ready, Charging, Maintaining, Exhausted, Disabled, Invalid
$reasonHuman-readable detail of a status or failure
$pluginThe name of the protection plugin that blocked a location
$x, $y, $zCoordinates (one decimal place)

Localization Note

Every key listed above runs through MagmaCore's color/gradient processor before being shown to the player. Translation packs targeting language in config.yml will be wired in through the same translatable() hook (currently a passthrough in Release 1).