Skip to content

Challenges

Challenges let players bypass the matchmaking queue and fight a specific opponent directly. Same format rules, same clause validation, same arenas — just without the wait.

Here’s what happens from challenge to battle:

  1. Send — Player A runs /ranked challenge <player> <ladder>.
  2. Invite GUI — Player B sees a 3-row GUI with the challenger’s info, plus Accept and Decline buttons.
  3. Accept or Decline — Player B clicks Accept (or runs /ranked accept), or declines (click Decline or /ranked deny).
  4. Arena assignment — An available arena is allocated. If none are free, the match enters the arena waiting queue.
  5. Team preview — If the format has teamPreview = true, both players see each other’s teams and select leads.
  6. Battle — Players teleport to the arena and the Cobblemon battle begins.
CommandWhat it does
/ranked challenge <player> <ladder>Send a challenge to another player on a specific ladder.
/ranked acceptAccept an incoming challenge.
/ranked denyDecline an incoming challenge.
/ranked togglechallengesToggle whether you receive challenges.

All challenge commands require the frontier.user permission (default: all players).

When a challenge arrives, the target player sees a 3-row chest GUI:

  • Row 1 — Challenger info: player head, ladder name, format details.
  • Row 2 — Action buttons: Accept (green) and Decline (red).
  • Row 3 — Additional context or padding.

Players can also accept/decline via commands without opening the GUI.

Declining a challenge applies a cooldown before the same challenger can send another one. This prevents spam.

The cooldown duration is controlled by declineCooldownSeconds in config.conf:

match {
declineQueueCooldownSeconds = 30
}

Default is 30 seconds.

Don’t want to receive challenges at all? Toggle them off:

/ranked togglechallenges

When challenges are toggled off, other players trying to challenge you will see a message that you’re not accepting challenges. Run the command again to re-enable.

Frontier plays sound cues at each stage of the challenge flow. These are configured in the sounds.challenge block of config.conf:

sounds {
challenge {
received = "minecraft:entity.experience_orb.pickup"
accepted = "minecraft:block.note_block.chime"
declined = "minecraft:block.note_block.bass"
}
}
EventDefault SoundWhen it plays
receivedExperience orb pickupTarget player receives a challenge.
acceptedNote block chimeChallenge is accepted (plays for both players).
declinedNote block bassChallenge is declined (plays for the challenger).

Challenges work almost identically to queue matches, with two differences:

  1. No rating expansion — you pick your opponent directly, so matchmaking logic doesn’t apply.
  2. No anti-boost tracking — repeated challenges against the same player won’t reduce your rating gains on the ladder. This keeps friendly rematches from penalizing either player.

Everything else — format validation, arena system, turn timers, replays, rating changes — is the same.