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

Cerulean Fork

Мод для оптимизации достижений, обновлённый форк Icterine / Cerulean с добавленными функциями

FabricNeoForgeForgeQuilt
Загрузчики
FabricNeoForgeForgeQuilt
Скачиваний на Modrinth
17,7 тыс.
Подписчиков на Modrinth
12
версии
42
Обновлён
15 сентября 202615 сент.
Опубликован
в 2026
Comparation · свайп

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

Работает на Fabric, NeoForge, Forge и Quilt
Для Minecraft 1.21.4–26.3
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 1.0.1 от 15 сентября 2026
Лицензия GPL-3.0-or-later — бесплатно
Где нужен
В игрене нуженНа сервереобязателен

Ставится только на сервер; игрокам ставить не нужно

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

Cerulean Это форк Cerulan, который на самом деле является форком Icterine. Оригинальный мейнтейнер не обновлял его год, так что я обновил его до современных версий как форк Cerulean под тем же названием.

Cerulean — это мод, который оптимизирует систему проверки достижений в Minecraft, а именно лагающий InventoryChangeTrigger, который может вызывать серьёзные лаги в модпаках с большим количеством модовых достижений. Cerulean — это форк Icterine, обновлённый до 1.21.1 пользователем Txni с дополнительными функциями.

Помимо обновления до 1.21.1, Cerulean добавляет опцию обрабатывать достижения только раз в несколько тиков — это стратегия, используемая такими модами, как Achievements Optimizer (который не работает с оригинальным Icterine). Эта опция реализована так, что первое получение предмета каждым игроком всегда обрабатывается для достижений — это предотвращает случаи, когда достижения зависают, пока вы не начнёте двигать предметы туда-сюда.

Краткое описание из оригинального мода:

  • Оптимизирует срабатывание достижений за получение предметов;
  • Может нарушить паритет с ваниллой, но не влияет на ванильные достижения и не должен влиять на подавляющее большинство модов/датапаков;
  • Даже если на что-то повлияет, достижение всё равно можно получить, просто выбросив и подобрав один из требуемых предметов;
  • На данный момент известных несовместимостей или проблем нет;
  • Любую инъекцию в ванильный код можно отключить в конфиге.
  • Все изменения серверные.

Результаты

Живой тест проводился на выделенном сервере с 3 активными игроками онлайн, на кастомном Forge-модпаке с более чем 200 модами и BlazeandCave's Advancements Pack, который добавляет более 950 достижений. Статистика собиралась с помощью Spark в течение часа.

С Icterine InventoryChangeTrigger выполняется почти в 2.5 раза быстрее (начиная с версии 1.1.0), занимая около 7.5% времени тика вместо 20%.

Сравнение статистики для Icterine 1.0.0 (~в 2 раза быстрее):

Statistic

Как работает ванильный InventoryChangeTrigger

  1. Когда игра обнаруживает, что стак в инвентаре игрока изменился, она вызывает для него InventoryChangeTrigger. Это включает подбор предметов, выбрасывание предметов, выбрасывание целых стаков, перемещение предметов в инвентаре.

    1. Также, когда вы открываете контейнер (сундук, печь и т.д.), игра считает, что все слоты в вашем инвентаре изменились, и вызывает триггер для всех них, включая пустые слоты.
  2. InventoryChangeTrigger подсчитывает пустые, непустые и полностью заполненные слоты в вашем инвентаре. Эта информация может использоваться в триггерах достижений, но в ванилле не используется.
  3. InventoryChangeTrigger перебирает зарегистрированные критерии достижений.
  4. Если у критерия есть требования к количеству слотов и они не совпадают со значениями из шага 2, или если у критерия нет требований к предметам, критерий пропускается.
  5. Если у критерия только одно требование к предмету, изменённый стак проверяется на соответствие этому требованию.
  6. Если у критерия несколько требований к предметам (например, "Накрой меня обломками" требует полный сет незеритовой брони), каждый стак предметов в инвентаре проверяется на каждое требование (но выполненные требования удаляются и больше не проверяются).
  7. Сопоставление предметов, особенно по тегу, очень тяжёлое. Но игра сначала проверяет, совпадает ли тип предмета у игрока с типом из требования, и только потом проверяет другие параметры, такие как количество, зачарования и другие NBT-данные.

Как работают оптимизации Icterine

  1. На шаге 1 не вызывается InventoryChangeTrigger, когда ты выбрасываешь стаки или перемещаешь их из инвентаря (например, в сундук). Управляется параметром ignore_triggers_for_emptied_stacks в файле конфигурации.
  2. Аналогично не вызывается InventoryChangeTrigger, если изменение стака вызвано уменьшением его количества, но не полным опустошением (например, игрок выбросил один предмет из полного стака). Управляется параметром ignore_triggers_for_decreased_stacks.
  3. А также не вызывается InventoryChangeTrigger, если размер стака увеличился, но не достиг порога ни для одного достижения. Например, размер стака земли вырос с 52 до 53, но в твоём модпаке нет достижения за получение 53 земли. Управляется параметром optimize_triggers_for_increased_stacks.
  4. Изменяется то, как игра проверяет изменённые предметы при открытии игроком экрана контейнера, чтобы она не считала весь стак изменившимся в ту же секунду, как ты что-то открыл. Управляется параметром initialize_inventory_last_slots.
  5. На шаге 6 сначала проверяется, соответствует ли изменённый слот какому-либо требованию, и только потом проверяется другой стак в инвентаре. Управляется параметром optimize_multiple_predicate_trigger.
  6. На шаге 7 сначала сравнивается количество в стаке, чтобы избежать ненужного сопоставления тегов. Также используется предыдущее количество в стаке, чтобы избежать ещё большего количества ненужных сопоставлений. Управляется параметром check_count_before_item_predicate_match.

Поддерживаемые версии

Icterine v1.2.0 работает с Minecraft Fabric/Quilt от 1.18.2 до 1.19.4 и с Forge от 1.18.2 до 1.19.2 (forge moment).

Icterine v1.3.0 имеет те же функции, что и v1.2.0, и работает с Fabric/Quilt 1.20 - 1.20.4, Forge 1.19.3 - 1.20.4 и NeoForge 1.20.1 - 1.20.4.

Используй фильтр на странице версий, чтобы выбрать нужный файл.

Если тебе нужен порт на любую другую версию, пожалуйста, открой issue или спроси на сервере Discord.

Частые вопросы

Как установить Cerulean Fork?

Установите Fabric под свою версию Minecraft, скачайте Cerulean Fork под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Cerulean Fork?

У Cerulean Fork есть сборки для Minecraft 1.21.4–26.3.

Нужен ли Cerulean Fork на сервере?

Ставится только на сервер; игрокам ставить не нужно

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

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