home products documents terms contact shop (coming soon!)

FAQ & Troubleshooting

Frequently asked questions and solutions for common issues.

Find answers to common questions and solutions for issues you may encounter.

Basic Information

What is CobbleRanked?

A competitive ranked battle system for Cobblemon servers with:

  • ELO-based matchmaking (Pokemon Showdown or Glicko-2)
  • Singles/Doubles/Triples battle formats
  • Season system with automatic rewards
  • Pokemon/move/ability/item blacklists
  • Label limits (e.g., max 1 legendary per team)
  • Cross-server support via Redis (optional)
  • Battle music and camera system
What are the requirements?
RequirementVersion
Minecraft1.21.1
Fabric Loader0.17.2+
Cobblemon1.7.1+
GashiLibs1.0.6+
MailLib1.0.5+
Fabric Language Kotlin1.13.6+
What database options are available?
DatabaseUse Case
SQLiteSingle server, simple setup (default)
MySQLCross-server, large player bases
MongoDBNoSQL alternative, sharded setups

Cross-server requires MySQL or MongoDB (not SQLite).

Configuration

How do I change the language?

Edit config/cobbleranked/config.yaml:

language: ja-jp  # en-us or ja-jp

Then run /rankedadmin reload.

What are the battle format defaults?
FormatTeam SizeLevel CapTurn TimerMatch Duration
Singles3v310090s15 minutes
Doubles4v450120s20 minutes
Triples6v650150s25 minutes

Note: Triples is disabled by default in the preset. Enable it in your season preset if needed.

All formats have 60s team selection and 30s lead selection timers.

Arena Setup

How do I set up an arena?

Use these commands in-game:

/rankedadmin setArena <name> pos1      # First player spawn
/rankedadmin setArena <name> pos2      # Second player spawn
/rankedadmin setArena <name> exit      # Exit teleport location
/rankedadmin setArena <name> spectator # Optional spectator position

Check arena status with /rankedadmin arena status.

"No arenas available" error

Solutions:

  1. Verify arena exists: /rankedadmin arena status
  2. Enable the arena: /rankedadmin arena enable <name>
  3. Ensure all positions are set (pos1, pos2, exit)
  4. Check world name matches exactly (case-sensitive)

Blacklist & Validation

How do I blacklist Pokemon forms?

Use hyphen (-) as the separator, not colon (:):

blacklist:
  pokemon:
    - "Mewtwo"           # Bans all Mewtwo forms
    - "Kyurem-Black"     # Only Black Kyurem
    - "Zygarde-Complete" # Only Complete form
    - "Necrozma-Ultra"   # Only Ultra Necrozma

v2.0.21+ Behavior:

  • Species-only entries (e.g., Landorus) ban ALL forms
  • Form-specific entries (e.g., Landorus-Therian) ban ONLY that form
How do I blacklist items?

Direct items or item tags:

blacklist:
  items:
    - "cobblemon:choice_band"     # Specific item
    - "minecraft:diamond"         # Vanilla item
    - "#cobblemon:mega_stones"    # Item tag (starts with #)
    - "#cobblemon:berries"        # All berries
"Team is invalid for this format" error

Common causes:

Validation ErrorMeaning
BLACKLISTED_SPECIESPokemon species is banned
BLACKLISTED_MOVEMove not allowed
BLACKLISTED_ABILITYAbility not allowed
BLACKLISTED_ITEMHeld item not allowed
LABEL_LIMIT_EXCEEDEDToo many legendaries/mythicals
DUPLICATE_SPECIESSpecies Clause violation
DUPLICATE_ITEMItem Clause violation

Solutions:

  1. Check blacklist in season preset
  2. Verify label limits (default: max 1 legendary)
  3. No duplicate Pokemon species (Species Clause)
  4. No duplicate held items (Item Clause)

Matchmaking

How does matchmaking work?
  1. Player joins queue with /ranked
  2. System searches within ELO range (default ±200)
  3. If no match found, range expands every 30s (+50 ELO)
  4. Last 3 recent opponents avoided (expires after 5 minutes)
  5. When matched, ready check begins (17s to accept)
  6. Team selection begins (60s)
  7. Lead selection (30s), then battle starts
Queue not finding matches

Solutions:

  1. ELO range expands over time - wait longer
  2. Recent opponent avoidance may delay matches
  3. With 4+ players in queue, avoidance relaxes after 2 minutes
  4. Check if ELO enforcement is too strict in config

ELO & Rankings

How does the ELO system work?

Pokemon Showdown System (Default):

  • Starting ELO: 1000
  • Floor ELO: 0 (no minimum)
  • New players get K-factor 35 for first 10 games (industry standard)
ELO RangeK-Factor
0-110030
1101-130025
1301-160020
1601-200016
2001+12

Higher K-factor = bigger rating changes per match.

Win Streak Bonus: Players on 3+ win streaks get +3 K-factor, 5+ wins get +5 K-factor.

What are the rank tiers?
TierELO Range
Poke Ball0-1299
Great Ball1300-1499
Ultra Ball1500-1699
Master Ball1700-1899
Beast Ball1900-2099
Cherish Ball2100+
ELO didn't change after battle

Possible causes:

  1. Daily ELO gain limit reached (default: 200)
  2. Battle didn’t complete (timeout/disconnect)
  3. Casual battle (no ELO change)
  4. Very small change due to large ELO difference

Seasons & Rewards

What happens when a season ends?
  1. Final rankings calculated
  2. Rewards distributed via MailLib
  3. Leaderboard archived (top 100 by default)
  4. ELO reset (hard or soft reset, configurable)
  5. New season begins automatically
Season didn't end automatically

Solutions:

  1. Check season schedule timezone (IANA format)
  2. Verify end date/time in season.yaml
  3. Manual rotation: /rankedadmin season rotate
  4. Check server logs for errors
How do I claim rewards?
/mailbox

Rewards are sent via MailLib when the season ends.

Database Issues

SQLite errors

Solutions:

  1. Check config/cobbleranked/ directory exists
  2. Verify file permissions on data.db
  3. Ensure disk space is available
  4. Backup and delete corrupt DB to regenerate
MySQL connection failed

Solutions:

  1. Verify MySQL is running
  2. Check host, port, database, username, password
  3. Test connection: mysql -h host -u user -p database
  4. Verify firewall allows port 3306
  5. Check character set: utf8mb4_unicode_ci
  6. Increase pool size if “max pool reached” error
MongoDB connection issues

Solutions:

  1. Verify connection string format
  2. Check MongoDB daemon is running
  3. Verify auth credentials if using authentication
  4. MongoDB driver is shaded - no conflicts with other mods

Cross-Server Issues

Redis not connecting

Solutions:

  1. Verify Redis is running: redis-cli ping
  2. Check host, port, password in config.yaml
  3. Verify firewall allows port 6379
  4. Test with password: redis-cli -h host -p port -a password ping
Players not matching across servers

Checklist:

  1. All servers use same database (MySQL/MongoDB)
  2. crossServer.enabled: true on all servers
  3. Redis connected on all servers
  4. Each server has unique serverId
  5. One server has empty battleServer (handles battles)
Players not teleported back after battle

This issue was fixed in v2.0.21. Players are now correctly teleported back to their original position after ranked battles (single-server mode).

If still experiencing issues:

  1. Verify exitPosition is set in your arena config
  2. Run /rankedadmin arena status to check arena configuration
  3. Ensure no other plugins are interfering with teleportation
  4. Check server logs for teleport-related errors

Commands Reference

Player commands
CommandPermissionDescription
/rankedcobbleranked.player.useOpen ranked GUI
/casualcobbleranked.player.casual.useOpen casual GUI
/casual missionscobbleranked.player.casual.useOpen missions GUI
/battlecamera togglecobbleranked.player.useToggle battle camera
/battlecamera statuscobbleranked.player.useCheck camera status
Admin commands

Arena Management:

  • /rankedadmin setArena <name> <pos1|pos2|exit|spectator>
  • /rankedadmin arena status - View all arenas
  • /rankedadmin arena enable/disable <name>
  • /rankedadmin setArena <name> setcenter [radius] - Set arena center with radius
  • /rankedadmin arena reset - Clear all positions
  • /rankedadmin teleportArena <name> - Teleport to arena
  • /rankedadmin setexit - Set global exit location

ELO Management:

  • /rankedadmin setelo <player> <format> <elo>
  • /rankedadmin addelo <amount> <player> <format>
  • /rankedadmin removeelo <amount> <player> <format>

Season Management:

  • /rankedadmin season info - Current season details
  • /rankedadmin season rotate - End season manually
  • /rankedadmin queue clear - Clear all queues

Data Management:

  • /rankedadmin reload - Reload all configs
  • /rankedadmin usage export [season] - Export Pokemon usage
  • /rankedadmin leaderboard export [season] [limit]
  • /rankedadmin migrate ... - v1 to v2 migration

Performance

Lag during battles

Solutions:

  1. Disable debug logging: debug.enabled: false
  2. Reduce battle music complexity
  3. Check server TPS
  4. Increase MySQL connection pool if needed
  5. Archive old seasons to reduce database size

Getting Help

If your issue isn’t listed above:

  1. Collect logs/latest.log
  2. Export relevant config files
  3. Note exact steps to reproduce
  4. Ask in Discord #feedback