Скачать Мод Icterine - оптимизация достижений и InventoryChangeTrigger на сервере в Майнкрафт
Icterine - оптимизация достижений и InventoryChangeTrigger на сервере

Мод Icterine - оптимизация достижений и InventoryChangeTrigger на сервере [1.20–1.20.4] [1.19.x] [1.18.2]

Для версий
  1. 1.18+
  2. 1.19.+
  3. 1.20.+

Icterine для Minecraft: оптимизация достижений и InventoryChangeTrigger на сервере​

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

img_compare.webp



Суть и польза​

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

Главная польза Icterine — снижение лишних проверок. Мод не добавляет новые достижения и не меняет игровой контент, а делает существующую систему более экономной. Он старается не вызывать InventoryChangeTrigger там, где проверка почти наверняка не нужна, и ускоряет сравнение предметов с условиями достижений.

Это особенно важно для серверов, где одновременно играют несколько человек. Если в сборке много модов и установлен крупный advancement pack, каждое изменение инвентаря может запускать цепочку проверок. Чем больше критериев зарегистрировано, тем тяжелее становится такая система. Icterine помогает уменьшить эту нагрузку и сделать сервер стабильнее.

По результатам теста на выделенном сервере с 3 активными игроками, кастомным Forge-модпаком более чем с 200 модами и BlazeandCave's Advancements Pack, добавляющим более 950 достижений, InventoryChangeTrigger с Icterine выполнялся почти в 2,5 раза быстрее в версии 1.1.0. Вместо примерно 20% времени тика он занимал около 7,5%. Для версии 1.0.0 в описании также указано ускорение примерно в 2 раза.

Icterine подойдёт тем, кто:

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


Основные характеристики / как это работает​

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

Дальше InventoryChangeTrigger подсчитывает пустые, непустые и полностью заполненные слоты. Такая информация может использоваться в условиях достижений, хотя в ванильных достижениях она не применяется. После этого игра проходит по зарегистрированным критериям advancement-системы и решает, нужно ли проверять предметы дальше.

Если у критерия есть требования к количеству слотов и они не совпадают, он пропускается. Если у критерия нет требований к предметам, он тоже пропускается. Если требуется один предмет, изменённый стак сравнивается с этим условием. Но если требований несколько, Minecraft может проверять каждый стак в инвентаре против каждого условия. Пример из описания — достижение “Cover me with debris”, где нужен полный комплект незеритовой брони.

Сравнение предметов может быть тяжёлым, особенно если используется проверка по тегам. Ванильная логика сначала сравнивает тип предмета, а уже потом проверяет дополнительные параметры: количество, зачарования и NBT-данные. Icterine оптимизирует несколько этапов этой цепочки, чтобы не выполнять лишние тяжёлые проверки.

Основные оптимизации мода:

  • не вызывать InventoryChangeTrigger, когда игрок выбрасывает стак или перемещает его из инвентаря, например в сундук;
  • не вызывать триггер, если стак уменьшился, но не опустел, например игрок выбросил один предмет из полного стака;
  • не запускать проверку при увеличении стака, если его размер не прошёл порог ни для одного достижения;
  • изменить проверку предметов при открытии контейнера, чтобы игра не считала все слоты изменёнными сразу;
  • при критериях с несколькими требованиями сначала проверять, подходит ли изменённый слот, и только потом просматривать остальные стаки;
  • сравнивать количество предметов до тяжёлого item predicate match, чтобы избежать лишней проверки тегов;
  • использовать предыдущее количество стака, чтобы дополнительно сокращать ненужные сравнения.
Каждая инъекция в ванильный код может быть отключена в конфигурационном файле. Это важная особенность для сборок: если какой-то конкретный мод или датапак ведёт себя нестандартно, можно точечно выключить проблемную оптимизацию, а не удалять Icterine полностью.

Все изменения работают на серверной стороне. Это значит, что мод ориентирован именно на серверную производительность и обработку достижений, а не на визуальные настройки клиента.


Как выбрать: критерии и чек-подход​

Выбирать Icterine стоит по тому, насколько сильно ваша сборка использует систему достижений и насколько заметна нагрузка от инвентарных проверок. Это не мод для каждого игрока в маленьком ванильном мире. Его реальная ценность раскрывается там, где достижений много, инвентарь часто меняется, а серверу приходится обрабатывать большое количество критериев.

Первый критерий — количество достижений. Если в сборке установлен крупный advancement pack, нагрузка на InventoryChangeTrigger может стать заметной. В тесте использовался BlazeandCave's Advancements Pack с более чем 950 достижениями, и именно в таком сценарии оптимизация показала сильный результат.

Второй критерий — размер модпака. Чем больше модов, тем больше предметов, тегов, условий и потенциальных advancement-критериев. Если в сборке более 200 модов или близкая по сложности конфигурация, Icterine может быть полезным техническим улучшением.

Третий критерий — серверный формат игры. Все изменения Icterine серверные, поэтому мод особенно актуален для dedicated server. Если несколько игроков одновременно подбирают, сортируют, перемещают и выбрасывают предметы, количество вызовов InventoryChangeTrigger растёт.

Четвёртый критерий — готовность принять небольшое отличие от ванильной паритетности. В описании прямо сказано, что мод может break parity with vanilla, но не затрагивает ванильные достижения и не должен влиять на подавляющее большинство модов и датапаков. Для оптимизационного мода это нормальный компромисс, но его стоит понимать заранее.

Пятый критерий — возможность настройки. Если вы хотите полный контроль, Icterine удобен тем, что каждую инъекцию можно отключить в конфиге. Это особенно важно для администраторов серверов и авторов модпаков, которые хотят тестировать изменения поэтапно.

Шестой критерий — версия Minecraft и загрузчик. Icterine v1.2.0 работает с Fabric и Quilt от 1.18.2 до 1.19.4, а также с Forge от 1.18.2 до 1.19.2. Версия Icterine v1.3.0 поддерживает Fabric и Quilt 1.20–1.20.4, Forge 1.19.3–1.20.4 и NeoForge 1.20.1–1.20.4. Поэтому файл нужно выбирать через фильтр на странице версий.

Короткий чек-подход:

  • у вас большой модпак;
  • есть много достижений или крупный advancement pack;
  • сервер тратит заметное время на InventoryChangeTrigger;
  • игроки часто взаимодействуют с инвентарём и контейнерами;
  • нужна оптимизация без добавления контента;
  • вы готовы проверять поведение достижений после установки;
  • вам важна возможность отключать отдельные оптимизации;
  • версия Minecraft входит в поддерживаемый диапазон.
Если эти пункты совпадают, Icterine стоит рассмотреть как полезный серверный мод оптимизации.


Пошагово: как сделать/применить/заказать/использовать​

Icterine не требует от игрока изучать новые механики, но для правильного внедрения в сборку лучше действовать по шагам. Это технический мод, поэтому важны совместимость, проверка результатов и понимание, какие именно оптимизации включены.

Шаг 1. Проверьте версию Minecraft и загрузчик.
Перед установкой убедитесь, что выбранный файл подходит под вашу версию. Для старших диапазонов используется Icterine v1.2.0, а для Minecraft 1.20–1.20.4 и близких версий — Icterine v1.3.0. На странице версий стоит использовать фильтр, чтобы не скачать неподходящий файл.

Шаг 2. Установите мод на серверную сторону.
Все изменения Icterine являются server-side. Мод нацелен на оптимизацию серверной обработки достижений, поэтому в первую очередь он нужен там, где выполняется логика мира и advancement-системы.

Шаг 3. Запустите сервер и проверьте обычную игру.
После установки стоит пройти базовые сценарии: подобрать предметы, открыть сундук, переместить стак, выбросить предмет, выполнить несколько простых достижений. Это поможет убедиться, что сборка запускается и обычные действия работают корректно.

Шаг 4. Проверьте достижения из вашей сборки.
Если используются модовые достижения или крупный датапак, протестируйте несколько разных критериев. Особое внимание стоит уделить достижениям, где нужно иметь несколько предметов одновременно или определённое количество предметов в стаке.

Шаг 5. Используйте профилировщик при необходимости.
В исходном тесте статистика собиралась через Spark в течение одного часа. Если вы администрируете сервер, похожий подход поможет понять, какую часть времени тика занимает InventoryChangeTrigger до и после установки.

Шаг 6. Изучите конфигурационный файл.
Каждую инъекцию в ванильный код можно отключить. Это значит, что при странном поведении не обязательно удалять мод целиком. Можно найти конкретную оптимизацию и временно выключить её.

Шаг 7. Настройте параметры под свою сборку.
Основные параметры включают ignore_triggers_for_emptied_stacks, ignore_triggers_for_decreased_stacks, optimize_triggers_for_increased_stacks, initialize_inventory_last_slots, optimize_multiple_predicate_trigger и check_count_before_item_predicate_match. Их стоит менять только тогда, когда вы понимаете, какой сценарий хотите проверить.

Шаг 8. Если достижение не сработало, попробуйте простой обход.
В описании указано, что даже если мод повлияет на какое-то достижение, оно всё равно должно быть obtainable: достаточно выбросить и снова подобрать один из нужных предметов. Это полезный тест, если конкретный advancement не засчитался сразу.

Шаг 9. При проблемах сообщите о них автору.
На момент описания неизвестных несовместимостей и проблем нет, но если вы нашли странное поведение, можно открыть issue или обратиться на Discord-сервер проекта. Для просьбы о порте на другую версию также предлагается открыть issue или спросить в Discord.

Такой порядок помогает внедрить Icterine аккуратно: получить прирост производительности, но при этом сохранить контроль над системой достижений.


Частые ошибки и как их избежать​

Первая ошибка — ждать от Icterine повышения FPS на клиенте. Это серверный мод оптимизации достижений. Он не улучшает графику, не ускоряет рендер и не меняет настройки видео. Его зона — InventoryChangeTrigger и обработка advancement-критериев на серверной стороне.

Вторая ошибка — ставить мод в маленькую сборку и ждать заметной разницы. Если достижений мало, модов почти нет, а сервер не тратит время на инвентарные триггеры, эффект может быть слабым. Icterine раскрывается в крупных модпаках с большим количеством advancement-критериев.

Третья ошибка — не учитывать возможное отличие от ванильной логики. В описании сказано, что мод might break parity with vanilla. Это не должно затрагивать vanilla advancements и большинство модов или датапаков, но для сложных кастомных достижений проверка всё равно полезна.

Четвёртая ошибка — не тестировать достижения после установки. Даже если известных несовместимостей нет, у каждого модпака своя комбинация предметов, тегов, NBT и критериев. Лучше проверить самые важные достижения заранее, особенно на сервере для игроков.

Пятая ошибка — удалять мод при первой странности вместо настройки. Каждая инъекция в ванильный код может быть отключена в конфиге. Если один параметр вызывает нежелательное поведение, можно выключить именно его и сохранить остальные оптимизации.

Шестая ошибка — игнорировать контейнеры. Один из важных источников лишних вызовов InventoryChangeTrigger — открытие контейнера, когда игра считает, что изменились все слоты инвентаря. Если вы тестируете мод, проверяйте не только подбор предметов, но и открытие сундуков, печей и похожих блоков.

Седьмая ошибка — неправильно выбрать версию файла. У Icterine есть разные диапазоны поддержки для v1.2.0 и v1.3.0. Если скачать файл не под тот Minecraft или загрузчик, проблема будет не в оптимизации, а в несовместимости версии.

Восьмая ошибка — считать, что мод исправит любые лаги сервера. Если нагрузка идёт от генерации мира, мобов, машин, чанков или другого мода, Icterine может не дать заметного результата. Он помогает именно там, где тяжёлым становится advancement InventoryChangeTrigger.

Девятая ошибка — не использовать обход с выбрасыванием и подбором предмета. Если конкретное достижение не засчиталось из-за оптимизации, описание предлагает простой вариант: выбросить и поднять один из требуемых предметов. Это не замена полноценной настройки, но полезный быстрый тест.


FAQ​

Что делает Icterine в Minecraft?
Icterine оптимизирует срабатывание достижений при изменениях предметов в инвентаре. Основной фокус — InventoryChangeTrigger, который вызывается при подборе, выбрасывании, перемещении предметов и открытии контейнеров. Мод уменьшает количество лишних проверок и ускоряет обработку критериев.

Для чего нужен Icterine на сервере?
Он нужен для снижения нагрузки от advancement-системы в больших модпаках. Если на сервере много модов, предметов, тегов и достижений, InventoryChangeTrigger может занимать заметную часть времени тика. Icterine помогает сделать эти проверки быстрее и экономнее.

Насколько Icterine ускоряет InventoryChangeTrigger?
В тесте на dedicated server с 3 активными игроками, модпаком более чем с 200 модами и BlazeandCave's Advancements Pack на 950+ достижений, версия 1.1.0 ускорила InventoryChangeTrigger почти в 2,5 раза. Доля времени тика снизилась примерно с 20% до 7,5%.

Влияет ли Icterine на ванильные достижения?
По описанию мод не должен затрагивать vanilla advancements. Он может немного нарушать полное совпадение с ванильной логикой, но при этом не должен влиять на ванильные достижения и подавляющее большинство модов или датапаков.

Что делать, если достижение не засчиталось?
В описании указано, что даже если Icterine повлияет на какой-то advancement, он всё равно должен быть obtainable. Обычно можно выбросить и снова подобрать один из требуемых предметов, чтобы триггер сработал. Если проблема повторяется, стоит проверить конфиг и сообщить об ошибке.

Можно ли отключить отдельные оптимизации Icterine?
Да. Каждая инъекция в ванильный код может быть отключена в конфигурационном файле. Это удобно для модпаков: если одна оптимизация конфликтует с редким кастомным сценарием, её можно выключить, не удаляя мод полностью.

Какие параметры оптимизации есть в конфиге?
Среди параметров указаны ignore_triggers_for_emptied_stacks, ignore_triggers_for_decreased_stacks, optimize_triggers_for_increased_stacks, initialize_inventory_last_slots, optimize_multiple_predicate_trigger и check_count_before_item_predicate_match. Каждый отвечает за отдельную часть логики InventoryChangeTrigger.

С какими версиями Minecraft работает Icterine?
Icterine v1.2.0 поддерживает Fabric и Quilt от 1.18.2 до 1.19.4, а также Forge от 1.18.2 до 1.19.2. Icterine v1.3.0 работает с Fabric и Quilt 1.20–1.20.4, Forge 1.19.3–1.20.4 и NeoForge 1.20.1–1.20.4.

Нужно ли ставить Icterine на клиент?
В описании указано, что все изменения являются server-side. Основная логика мода связана с серверной обработкой достижений и InventoryChangeTrigger. Поэтому мод стоит рассматривать именно как серверную оптимизацию, а не клиентский визуальный фикс.

Есть ли известные несовместимости у Icterine?
На момент описания неизвестных несовместимостей или проблем нет. Если вы нашли ошибку, странное поведение или хотите порт на другую версию Minecraft, автор предлагает открыть issue или обратиться на Discord-сервер проекта.


Как установить Icterine​

  1. Скачай и установи Minecraft Forge / NeoForge / Fabric / Quilt
  2. Скачай мод
  3. Не распаковывая, скопируй в .minecraft\mods
  4. Готово

Итог​

Icterine — это узкий, но полезный серверный мод для Minecraft, который оптимизирует InventoryChangeTrigger и снижает нагрузку от достижений при изменении предметов в инвентаре. Он особенно хорошо подходит для крупных модпаков, серверов с большим количеством игроков, наборов достижений и датапаков, где advancement-система может занимать заметную часть времени тика. Мод не добавляет контент, но ускоряет проверки, позволяет отключать отдельные оптимизации через конфиг и сохраняет практичный обход на случай редких проблем с получением достижения. Если ваш сервер перегружен множеством advancement-критериев, Icterine стоит протестировать как аккуратное техническое улучшение.
Автор
Galter
Скачивания
0
Показов
4
Первый выпуск
Обновление

Оценки

0.00 звёзд 0 оценок

Другие ресурсы пользователя Galter

Похожие ресурсы (Если ресурс не уникален, он будет удален после публикации)

Alternate Current -  оптимизация редстоун пыли без лишних лагов Galter
Эффективное и не привязанное к месту применение редстоунной пыли
AsyncParticles - оптимизация частиц Galter
Асинхронный тик частиц/рендеринг
33
302
  • Concurrent Chunk Management Engine: Мощная Оптимизация Генерации Чанков Shigarachi
    Революционное Улучшение Производительности для Бесшовного Геймплея
    185
    570
  • Cull Less Leaves - оптимизация листвы без грубого ухудшения внешнего вида Galter
    Отбраковывайте листья, пока они выглядят горячими!
    0
    3
  • Distant Horizons: Оптимизация Дальности Прорисовки Shigarachi
    Улучшает визуальное восприятие игры, увеличивая дальность прорисовки
    213
    1,453