Cobblemon Ranked
Добавлена система рейтинга и поддержка кросс-серверного матчмейкинга для Cobblemon
- Загрузчики
- FabricNeoForge
- Скачиваний на Modrinth
- 60,3 тыс.
- Подписчиков на Modrinth
- 20
- версия
- 21
- Обновлён
- 15 апреля 202615 апр.
- Опубликован
- в 2025
Коротко о моде
Нужен на сервере; в игре — по желанию
📊 Документация системы рейтинга CobblemonRanked
Этот мод нужно устанавливать только на стороне сервера.
После установки на клиенте нажатие клавишиXпо умолчанию открывает графический интерфейс.
💡 Чтобы использовать функциюenableTeamPreview, этот мод также нужен на стороне клиента.
🎯 Обзор возможностей
- Встроенная поддержка нескольких языков (китайский и английский), легко расширяется
- Настраиваемые боевые арены с автотелепортацией и возвратом
- Настраиваемые звания рангов и пороги Elo
- Поддержка трёх режимов: Singles, Doubles и 2v2singles
- Система рейтинга Elo рассчитывается отдельно для каждого формата
- Независимая система наград для каждого формата с настраиваемыми командами
- Встроенная система сезонов с автоматической ротацией и сбросом данных
- Очередь подбора по Elo с опциональным ослаблением на основе времени ожидания
- Отключения считаются поражениями; Elo вычитается
- Полностью управляется через GUI с кликабельными текстовыми меню и графическим интерфейсом
- Поддержка межсерверного подбора
- После того как
enableTeamPreviewстанетTrue, если количество Pokémon превышает установленный лимит, откроется интерфейс выбора Pokémon для боя. Если количество не превышает лимит, интерфейс не откроется.
Например, еслиsinglesPickCountNumberустановлен на 3:
У Игрока 1 есть 5 Pokémon, что вызовет интерфейс выбора, и ему нужно выбрать 3 для боя.
У Игрока 2 всего 2 Pokémon, поэтому интерфейс выбора не откроется. Вместо этого после завершения выбора Игроком 1 бой начнётся сразу.
🌐 Межсерверный подбор(больше не поддерживается)
Доступно с v1.2.0+ — Поддерживает подключение с любого сервера или одиночного мира (требуется официальный аккаунт Minecraft)
Демонстрация и настройка межсерверного подбора: Youtube
Вы можете скачать сервер здесь, чтобы настроить свой собственный сервер.Download
✅ Как использовать
- Включите
enableCrossServerв конфиге - Измените
cloudServerId, он не должен совпадать с другими серверами (значение по умолчаниюserverможет уже кем-то использоваться) - Введите
/rank reload, чтобы перезагрузить конфигурацию, или перезапустите сервер. - Введите
/rank cross start, чтобы подключиться к облачному серверу
⚠️ Текущие ограничения
- Поддерживается только режим singles
- Некоторые предметы и эффекты способностей могут не срабатывать
- Игроки с одного и того же сервера не будут подбираться друг с другом
🌐 Межсерверные команды
| Команда | Описание | Права |
|---|---|---|
/rank cross start | Подключиться к облачному серверу | OP |
/rank cross stop | Отключиться от облака | OP |
/rank cross chat | Чат с вашим противником | Все |
/rank cross join singles | Войти в подбор singles | Все |
/rank cross leave | Покинуть очередь подбора | Все |
/rank cross battle move [1-4] | Использовать приём в бою | Все |
/rank cross battle switch [1-6] | Сменить Pokémon | Все |
/rank cross battle forfeit | Сдаться в бою | Все |
📌 Обзор команд
Все команды начинаются с
/rank
🎮 Команды игрока
| Команда | Описание |
|---|---|
/rank gui | Открывает главное меню GUI |
/rank gui_top | Открывает GUI выбора формата для таблицы лидеров |
/rank gui_info | Просмотр вашей подробной статистики Elo |
/rank gui_info_players | Постраничный список игроков онлайн для просмотра их рейтингов |
/rank gui_myinfo | Быстрый доступ к вашему собственному рейтингу |
/rank gui_queue | Открывает меню подбора |
| `/rank gui_info_format ` | GUI-просмотр сезонной статистики другого игрока |
/rank queue join [format] | Войти в рейтинговую очередь |
/rank queue leave | Покинуть все очереди подбора |
/rank status | Показать ваш текущий статус в очереди |
| `/rank info ` | Показать вашу статистику для указанного формата и сезона |
| `/rank info [season]` | Просмотреть рейтинг другого игрока для конкретного формата и сезона |
/rank top | Просмотреть таблицу лидеров для формата по умолчанию и текущего сезона |
| `/rank top [season] [page] [count]` | Постраничная таблица лидеров для указанного формата и сезона |
/rank season | Просмотреть информацию о текущем сезоне (время начала/окончания, участие и т. д.) |
| `/rank pokemon_usage ` | просмотреть статистику использования Pokémon |
🛡️ Админ-команды (требуется OP)
| Команда | Описание |
|---|---|
/rank gui_reward | Открывает GUI выбора формата наград |
/rank gui_reset | Постраничный список игроков онлайн для сброса рейтинга |
| `/rank reset ` | Сбросить данные игрока для текущего сезона и формата |
| `/rank reward ` | Выдать награду игроку за определённый ранг |
/rank season end | Принудительно завершить текущий сезон |
/rank reload | Перезагрузить файлы конфигурации (язык, настройки рангов и т.д.) |
| `/rank setseasonname ` | Задать название сезона |
Вот исправленное содержимое Wiki на английском:
Placeholder API
Базовые плейсхолдеры (с использованием формата по умолчанию)
| Плейсхолдер | Описание |
|---|---|
%cobblemon_ranked:elo% | Рейтинг ELO |
%cobblemon_ranked:rank_title% | Название ранга |
%cobblemon_ranked:win_rate% | Процент побед |
%cobblemon_ranked:wins% | Победы |
%cobblemon_ranked:losses% | Поражения |
%cobblemon_ranked:total_games% | Всего сыграно игр |
%cobblemon_ranked:streak% | Текущая серия побед |
%cobblemon_ranked:best_streak% | Лучшая серия побед |
%cobblemon_ranked:flee_count% | Количество побегов/выходов |
%cobblemon_ranked:rank% | Текущее место в рейтинге (например, #1) |
Плейсхолдеры, связанные с сезоном
| Плейсхолдер | Описание |
|---|---|
%cobblemon_ranked:season_name% | Название сезона |
%cobblemon_ranked:season_id% | ID сезона |
%cobblemon_ranked:season_days_left% | Дней до конца сезона |
%cobblemon_ranked:season_time_left% | Оставшееся время в отформатированном виде |
Плейсхолдеры прогресса ранга
| Плейсхолдер | Описание |
|---|---|
%cobblemon_ranked:next_rank_elo% | ELO, необходимый для следующего ранга |
%cobblemon_ranked:next_rank_name% | Название следующего ранга |
Плейсхолдер статуса очереди
| Плейсхолдер | Описание |
|---|---|
%cobblemon_ranked:queue_status% | Текущий статус очереди |
Поддержка форматов (указание формата боя)
Поддерживаются три формата боя: singles, doubles, 2v2singles
Использование: добавьте _format к плейсхолдеру
| Плейсхолдер | Описание |
|---|---|
%cobblemon_ranked:elo_singles% | Рейтинг ELO в одиночном формате |
%cobblemon_ranked:elo_doubles% | Рейтинг ELO в парном формате |
%cobblemon_ranked:elo_2v2singles% | Рейтинг ELO в формате 2v2 одиночный |
%cobblemon_ranked:rank_title_singles% | Название ранга в одиночном формате |
%cobblemon_ranked:rank_title_doubles% | Название ранга в парном формате |
%cobblemon_ranked:win_rate_singles% | Процент побед в одиночном формате |
%cobblemon_ranked:win_rate_doubles% | Процент побед в парном формате |
%cobblemon_ranked:wins_singles% | Победы в одиночном формате |
%cobblemon_ranked:wins_doubles% | Победы в парном формате |
%cobblemon_ranked:rank_singles% | Место в рейтинге в одиночном формате |
%cobblemon_ranked:rank_doubles% | Место в рейтинге в парном формате |
%cobblemon_ranked:next_rank_elo_singles% | ELO следующего ранга для одиночного формата |
%cobblemon_ranked:next_rank_name_singles% | Название следующего ранга для одиночного формата |
Примечание: Плейсхолдеры, связанные с сезоном (season_name, season_id, season_days_left, season_time_left) и queue_status, не поддерживают параметры формата, так как они не привязаны к конкретному формату.
⚙️ Справочник по файлу конфигурации (cobblemon_ranked.json)
Нажмите, чтобы развернуть полный справочник по конфигурации (с комментариями)
{
"defaultLang": "en", // Язык по умолчанию: 'en' или 'zh'
"defaultFormat": "singles", // Формат боя по умолчанию
"minTeamSize": 1, // Минимальное количество покемонов в команде
"maxTeamSize": 6, // Максимальное количество покемонов в команде
"allowDuplicateItems": false, // Разрешить дублирование удерживаемых предметов в команде
"enableTeamPreview": true, // Включить предпросмотр и выбор команды (Bring 6 Pick 3/4)
"teamSelectionTime": 90, // Время на выбор команды в секундах
"turnActionTimeoutSeconds": 90, // Время на выбор действия каждый ход в секундах (0 = отключено)
"singlesPickCount": 3, // Количество покемонов для выбора в одиночном формате (обычно 3)
"doublesPickCount": 4, // Количество покемонов для выбора в парном формате (обычно 4)
"maxEloDiff": 200, // Максимальная разница ELO для подбора соперников
"maxQueueTime": 300, // Максимальное время ожидания (секунды) до ослабления правил ELO
"maxEloMultiplier": 3.0, // Максимальный множитель ослабления разницы ELO
"seasonDuration": 30, // Длительность сезона (дни)
"initialElo": 1000, // ELO в начале сезона
"eloKFactor": 32, // Коэффициент K для ELO (влияет на величину изменения ELO)
"minElo": 0, // Минимальный порог ELO
"loserProtectionRate": 1.0, // Коэффициент защиты проигравшего (от 0.0 до 1.0). Проигравший потеряет не более (winner_gain * loserProtectionRate). 1.0 = без защиты
"bannedPokemon": ["Mewtwo", "Arceus"], // Запрещённые покемоны (например, легендарные)
"restrictedPokemon": ["Mew", "Celebi"], // Список ограниченных покемонов
"maxRestrictedCount": 2, // Максимальное количество ограниченных покемонов в команде
"bannedHeldItems": ["cobblemon:leftovers"], // Запрещённые удерживаемые предметы для покемонов
"bannedCarriedItems": ["cobblemon:leftovers"], // Запрещённые предметы в инвентаре игрока
"bannedMoves": ["leechseed"], // Запрещённые приёмы для покемонов
"bannedNatures": ["cobblemon:naughty"], // Запрещённые характеры для покемонов
"bannedAbilities": [], // Запрещённые способности для покемонов
"bannedGenders": ["MALE"], // Запрещённый пол для покемонов
"bannedShiny": false, // Запретить участие шайни-покемонов в боях
"allowedFormats": ["singles", "doubles", "2v2singles"], // Поддерживаемые форматы боя
"maxLevel": 0, // Максимальный уровень покемонов (0 = без ограничений)
"allowDuplicateSpecies": false, // Разрешить дублирование видов покемонов
"enableCustomLevel": false, // Включить принудительное изменение уровней покемонов
"customBattleLevel": 50, // Принудительно изменить уровень покемонов
"preventBlockBreaking": true, // Запретить игрокам ломать блоки во время рейтинговых боёв
"restorePokemonHpAfterBattle": true, // Восстанавливать HP покемонов после боя
"battleArenas": [ // Список арен (точки телепортации для боёв)
{
"world": "minecraft:overworld",
"playerPositions": [
{ "x": 0.0, "y": 70.0, "z": 0.0 },
{ "x": 10.0, "y": 70.0, "z": 0.0 }
]
},
{
"world": "minecraft:overworld",
"playerPositions": [
{ "x": 100.0, "y": 65.0, "z": 100.0 },
{ "x": 110.0, "y": 65.0, "z": 100.0 }
]
}
],
"victoryRewards": [ // Настройка наград за победу (выполняется после каждой победы)
"give {player} minecraft:experience_bottle 5",
"give {player} minecraft:emerald 1"
],
"rankRewards": { // Награды за ранг для конкретного формата (на основе команд)
"singles": {
"Bronze": ["give {player} minecraft:apple 5"],
"Silver": ["give {player} minecraft:golden_apple 3"],
"Gold": ["give {player} minecraft:diamond 2", "give {player} minecraft:emerald 5"],
"Platinum": ["give {player} minecraft:diamond_block 1", "effect give {player} minecraft:strength 3600 1"],
"Diamond": ["give {player} minecraft:netherite_ingot 1", "give {player} minecraft:elytra 1"],
"Master": ["give {player} minecraft:netherite_block 2", "give {player} minecraft:totem_of_undying 1", "effect give {player} minecraft:resistance 7200 2"]
},
"doubles": {
"Bronze": ["give {player} minecraft:bread 5"],
"Silver": ["give {player} minecraft:gold_nugget 10"],
"Gold": ["give {player} minecraft:emerald 1"],
"Platinum": ["give {player} minecraft:golden_apple 1"],
"Diamond": ["give {player} minecraft:totem_of_undying 1"],
"Master": ["give {player} minecraft:netherite_ingot 2"]
},
"2v2singles": {
"Bronze": ["give {player} minecraft:bread 5"],
"Silver": ["give {player} minecraft:gold_nugget 10"],
"Gold": ["give {player} minecraft:emerald 1"],
"Platinum": ["give {player} minecraft:golden_apple 1"],
"Diamond": ["give {player} minecraft:totem_of_undying 1"],
"Master": ["give {player} minecraft:netherite_ingot 2"]
}
},
"rankTitles": { // Пороги ELO → названия рангов
"3500": "Master",
"3000": "Diamond",
"2500": "Platinum",
"2000": "Gold",
"1500": "Silver",
"0": "Bronze"
},
"rankRequirements": { // Минимальный процент побед для награды каждого ранга(0.0 ~ 1.0)
"Bronze": 0.0,
"Silver": 0.3,
"Gold": 0.3,
"Platinum": 0.3,
"Diamond": 0.3,
"Master": 0.3
},
"enableCrossServer": true, // Включить кросс-серверный подбор соперников
"cloudServerId": "server", // ID облачного сервера для этого сервера (не должен повторяться с другими)
"cloudToken": "", // Токен авторизации облачного сервера (оставьте пустым для публичного облачного сервера)
"cloudApiUrl": "http://139.196.103.55:8000", // Адрес облачного API (можно указать IP или доменное имя)
"cloudWebSocketUrl": "ws://139.196.103.55:8000/ws/" // Адрес облачного WebSocket (можно указать IP или доменное имя)
}
</details>
<details>
<summary>Нажмите, чтобы развернуть `database.json`</summary>
```json
{
// Тип базы данных: 'sqlite' или 'mysql'
"databaseType": "sqlite",
// Путь к файлу базы данных SQLite (относительно папки config)
"sqliteFile": "ranked.db",
// Конфигурация MySQL
"mysql": {
// Адрес хоста MySQL
"host": "localhost",
// Порт MySQL
"port": 3306,
// Имя базы данных MySQL
"database": "cobblemon_ranked",
// Имя пользователя MySQL
"username": "root",
// Пароль MySQL
"password": "",
// Размер пула подключений MySQL
"poolSize": 10,
// Тайм-аут подключения MySQL (мс)
"connectionTimeout": 5000,
// Дополнительные параметры подключения MySQL
"parameters": "useSSL=false&serverTimezone=UTC&characterEncoding=utf8"
}
}Частые вопросы
Как установить Cobblemon Ranked?
Установите Fabric под свою версию Minecraft, скачайте Cobblemon Ranked под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Cobblemon Ranked?
У Cobblemon Ranked есть сборки для Minecraft 1.21.1.
Нужен ли Cobblemon Ranked на сервере?
Нужен на сервере; в игре — по желанию