Products Docs Help Store Discord

What's New

Recent CobbleRanked updates at a glance.

New here? Start with the Quick Start. Upgrading? This page lists what changed and which config keys are new, so you know exactly what to touch.

📝 Missing settings use safe defaults. Existing season preset files are preserved during updates, so add new preset settings manually when you want to enable them.


v2.1.10 (August 2026)

CobbleRanked now checks each Pokémon’s moves against the rules of the active season.

Active rulesExample: Chansey with Toxic
National Dex✅ Allowed because Toxic is one of Chansey’s old moves
Current Gen 9 (Smogon or VGC)❌ Blocked because Chansey cannot currently learn Toxic

This checks the Pokémon and move together. It does not ban Toxic for everyone, so a Pokémon that can currently learn Toxic may still use it in a Gen 9 season.

The bundled smogon, vgc, vgc_smogon, and national_dex presets already use the appropriate rule. Existing preset files are never overwritten during an update, so servers with older or custom files should follow Old Moves and National Dex to add the setting manually.

Admin commands now work correctly with LuckPerms

/rankedadmin no longer performs an extra OP-level check before checking the permission for the chosen subcommand. This fixes cases where an OP or a user with the correct LuckPerms node still could not run /rankedadmin reload.

  • Grant cobbleranked.admin.config.reload for reload access only.
  • Grant cobbleranked.admin.* for every admin command.
  • Console access and the configurable OP level 2+ fallback still work.

See LuckPerms for setup and troubleshooting.

Official builds can be identified

Every official CobbleRanked JAR now contains a signed, opaque customer ID and a unique build ID. This helps Gashi Studios verify that a JAR is authentic and identify the source of an unauthorized redistribution.

  • Run /rankedadmin buildinfo to view the signed identity.
  • The same information is written to the server log during startup.
  • The identifier does not contain a hardware ID and does not require online tracking.
  • Changing the customer ID, build ID, version, or issue time invalidates the signature and prevents startup.

Performance improvements

Team checks, queue updates, and placeholder replacement now avoid repeated work. This reduces overhead in tasks that run often without changing matchmaking or validation behavior.

There are no breaking configuration changes in v2.1.10.


v2.1.08 – v2.1.09 (August 2026)

Random Battle support for Fakemon and custom species

Random Battle can now build sets directly from a species’ Cobblemon data. You can add selected custom species or every registered species that is missing from the normal sets file, without writing a large JSON file by hand. See Add Fakemon without writing JSON.

Missions can count ranked matches

Missions can count casual matches, ranked matches, or both. Use /missions to open the mission menu from either mode. See Choose Which Matches Count.

Different rewards for each battle format

Singles, Doubles, and Random Battle formats can now pay different win and loss rewards. Any reward list you do not override continues to use the general reward list. See Per-Format Rewards.

Fixes

  • Disabled formats no longer remain selected in leaderboard, blacklist, and reward menus.
  • Ending one match no longer removes battle Pokémon from another nearby arena.
  • Species names with punctuation, such as Mr. Mime, now work in Random Battle filters and weighting.
  • Mission menus and messages no longer say “Casual Missions” when ranked missions are enabled.

v2.1.03 – v2.1.07 (July 2026)

Casual match rewards

Casual battles can now pay out their own rewards, separate from ranked. Two new lists in battle.yaml:

rewards:
  casualVictoryCommands: []   # runs after casual wins
  casualDefeatCommands: []    # runs after casual losses

Works great with economy mods (Impactor, Vault/Essentials). See Victory/Defeat Rewards.

Random Battle: Max PP & instant leads

  • maxPP: true (new default) — every generated move gets PP Max applied, matching Pokémon Showdown (Earthquake 10→16 PP).
  • skipLeadSelection — skip the lead-selection GUI in random battles and send out the first team member immediately.

See Random Battle.

Softer default penalties

Default flee/forfeit penalties were rebalanced to be friendlier for casual-leaning servers:

Old defaultNew default
Penalty tiersup to 1 day ban at 10+ fleesup to 1 hour at 8+ flees
Early forfeitfirst 3 turns, ×3.0 penaltyfirst 6 turns, ×1.5 penalty

Strict-server admins can restore harsher values in battle.yaml → competitive. See Flee & Forfeit Penalties.

PlaceholderAPI on Arclight

On Arclight servers with the PlaceholderAPI plugin, CobbleRanked now registers a native PAPI expansion automatically — Bukkit scoreboard/chat/hologram plugins can use %cobbleranked_singles_elo% and friends. See Placeholders.

Detailed Pokémon tooltips

Team-selection and lead-selection GUIs can show ability, nature, held item, moves, IVs and EVs in each Pokémon’s tooltip (gui.detailedTooltips, on by default; showOpponentDetails reveals the opponent’s details too). See GUI Settings.

MiniMessage text formatting

Language files now accept MiniMessage tags — HEX colors, gradients, rainbow — alongside classic & codes. Existing translations keep working unchanged. See Languages.


v2.1.0 – v2.1.02 (May–July 2026)

  • Discord Webhook notifications — rank-ups, match results, and season-end posts to a Discord channel. Works on pure Fabric and Arclight. See Main Config.
  • Arclight cross-server compatibility — player transfers between linked servers now work on Arclight hybrids.
  • LuckPerms dynamic contexts — expose a player’s tier and ELO as LuckPerms contexts for rank-gated permissions. See LuckPerms.
  • Music config moved — background music settings moved from config.yaml to sounds.yaml. See Sounds.

See Also