Перейти к содержимому

Cobblemon Ranked

Добавлена система рейтинга и поддержка кросс-серверного матчмейкинга для Cobblemon

FabricNeoForge
Загрузчики
FabricNeoForge
Скачиваний на Modrinth
60,3 тыс.
Подписчиков на Modrinth
20
версия
21
Обновлён
15 апреля 202615 апр.
Опубликован
в 2025
Pokémon selection screen — 6/3 Singles, 2v2 Singles, and 6/4 Doubles v1.3.3+ · свайп

Коротко о моде

Работает на Fabric и NeoForge
Для Minecraft 1.21.1
Нужен на сервере; в игре — по желанию
Последняя версия — v1.4.2 от 15 апреля 2026
Лицензия GPL-3.0-only — бесплатно
Где нужен
В игренеобязателенНа сервереобязателен

Нужен на сервере; в игре — по желанию

Версии игры1.21.1
Описание переведено автоматическиПоказать оригинал (EN)

📊 Документация системы рейтинга CobblemonRanked

FAQ


Этот мод нужно устанавливать только на стороне сервера.
После установки на клиенте нажатие клавиши 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

✅ Как использовать

  1. Включите enableCrossServer в конфиге
  2. Измените cloudServerId, он не должен совпадать с другими серверами (значение по умолчанию server может уже кем-то использоваться)
  3. Введите /rank reload, чтобы перезагрузить конфигурацию, или перезапустите сервер.
  4. Введите /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 на сервере?

Нужен на сервере; в игре — по желанию

Лицензия и источник
GNU General Public License v3.0 onlyможно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее