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

PulseNet

Серверный мод оптимизации сети для Fabric, использующий пакетную обработку пакетов и другие оптимизации. Полностью совместим с Krypton.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
9,4 тыс.
Подписчиков на Modrinth
12
версии
3
Обновлён
17 сентября 202617 сент.
Опубликован
в 2026

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

Работает на Fabric
Для Minecraft 26.1–26.3
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 1.1.0+26.3 от 17 сентября 2026
Нужен Fabric API
Лицензия OSL-3.0 — бесплатно
Где нужен
В игрене нуженНа сервереобязателен

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

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

PulseNet

Сердцебиение высокопроизводительной сети — издание для Fabric от BorisShoes

PulseNet — это мод для Fabric, который приносит высокопроизводительную пакетную обработку пакетов на ваш сервер Minecraft. Заменяя стандартные сбросы сети для каждого пакета на интеллектуальную пакетную обработку, PulseNet снижает накладные расходы системных вызовов и нагрузку на CPU, сохраняя при этом доставку критических пакетов с низкой задержкой.

Website Discord

Обзор проекта

PulseNet — это мод для Fabric, который заменяет стандартный сброс сети для каждого пакета в Minecraft на умную систему пакетной обработки. Исходящие пакеты группируются и сбрасываются вместе, что резко снижает накладные расходы на системные вызовы ядра и планирование задач событийного цикла, при этом бой, чат и другие чувствительные к задержке пакеты остаются мгновенными. Разработан для бесшовной работы вместе с другими модами для Fabric через совместимость с Mixin.


Установка

PulseNet — это серверный мод для Fabric. Поместите его в папку mods/ вместе с Fabric API.

Требования:


Возможности

ВозможностьОписание
Умная пакетная обработкаГруппирует исходящие пакеты в пределах тика и сбрасывает их одним системным вызовом ядра вместо одного вызова на пакет. Поддерживает три режима: smart_execution, strict_tick и interval.
Очередь записиЗаменяет отправку задач событийного цикла для каждого пакета одной пакетной задачей записи, устраняя аллокации лямбд и накладные расходы на кросс-поточное планирование.
Объединение пакетовСобирает похожие низкоприоритетные пакеты (частицы, звуки) в BundlePacket, снижая количество получаемых клиентом пакетов.
Оптимизация взрывовОбнаруживает массовые изменения блоков от взрывов и заменяет отдельные пакеты обновления блоков на полную пересылку чанка при превышении настраиваемого порога.
Классификация пакетовАвтоматически классифицирует пакеты как Critical, Instant, Chat, Ignored или Coalesce — гарантируя, что чувствительные к задержке пакеты (keepalive, disconnect, бой) всегда обходят буфер. Инфраструктурные пакеты Fabric (minecraft:register, minecraft:unregister) обрабатываются на уровне Connection, чтобы предотвратить сбои рукопожатия модов.
Метрики в реальном времениВстроенная система метрик отслеживает логический/физический PPS, пропускную способность, нагрузку на CPU, экономию памяти и эффективность очереди записи. Просмотр через команды или внутриигровой боссбар.
Совместимость с MixinИспользует подход @WrapOperation, который выполняется после всех остальных миксинов (Polymer, серверные переводы и т. д.), обеспечивая полную совместимость с экосистемой модов Fabric.
Горячая перезагрузка конфигаВсе настройки конфигурируются через pulse.properties и внутриигровые команды (/pulse config, /pulse reload) без необходимости перезапуска.

Команды

КомандаОписание
/pulseПоказывает текущую версию PulseNet.
/pulse reloadПерезагружает конфигурацию с диска.
/pulse configПросмотр и изменение всех настроек конфигурации в игре.
/pulse netstats [network|cpu|ram|all]Показывает статистику сети, CPU и памяти в реальном времени.
/pulse netstats barПереключает оверлей боссбара с метриками.
/pulse netstats resetСбрасывает все счётчики метрик в ноль.
/pulse packetNamesПеречисляет все наблюдаемые имена классов пакетов и ID каналов.
/pulse packetNames classesПеречисляет только наблюдаемые имена классов пакетов.
/pulse packetNames channelsПеречисляет только наблюдаемые ID каналов пользовательских payload.
/pulse packetNames resetОчищает списки наблюдаемых имён пакетов.

Команды конфигурации

Следующие команды позволяют менять настройки в файле pulse.properties без перезапуска сервера (после выполнения этих команд используйте /pulse reload для применения изменений на лету). К команде можно добавить значение, чтобы задать настройку, или использовать её без значения, чтобы посмотреть текущее значение.

  • /pulse config batchingEnabled Главный переключатель системы умной пакетной обработки пакетов. Если true, исходящие пакеты буферизуются и отправляются пакетами, а не по отдельности. (по умолчанию: true)
  • /pulse config batchingMode Режим пакетной обработки: smart_execution (отправка на тике + лимиты), strict_tick (отправка только в конце тика), interval (отправка по таймеру). (по умолчанию: smart_execution)
  • /pulse config batchingMaxBatchSize Максимальное количество пакетов в буфере до принудительной отправки. (по умолчанию: 1024)
  • /pulse config batchingMaxBatchBytes Максимальное количество байт в буфере до принудительной отправки. (по умолчанию: 32000)
  • /pulse config batchingFlushInterval Интервал в миллисекундах для режима пакетной обработки INTERVAL. (по умолчанию: 25)
  • /pulse config batchingSafetyMarginBytes Запас безопасности в байтах, вычитаемый из лимита максимального размера пакета для предотвращения переполнения. (по умолчанию: 64)
  • /pulse config batchingInstantPackets Список имён классов пакетов, которые должны немедленно отправлять буфер при отправке. (по умолчанию: ClientboundHurtAnimationPacket, ClientboundDamageEventPacket, ClientboundBlockEntityDataPacket)
  • /pulse config batchingIgnoredPackets Список имён классов пакетов, которые всегда должны полностью обходить буфер. (по умолчанию: [])
  • /pulse config batchingInstantChannels Список ID каналов плагинов (например, axiom:hello), чьи пакеты с пользовательской полезной нагрузкой должны немедленно отправлять буфер при отправке. Используйте /pulse packetNames channels для поиска ID каналов. (по умолчанию: [])
  • /pulse config batchingIgnoredChannels Список ID каналов плагинов, чьи пакеты с пользовательской полезной нагрузкой всегда должны полностью обходить буфер. Используйте /pulse packetNames channels для поиска ID каналов. Примечание: minecraft:register и minecraft:unregister обрабатываются на уровне Connection и всегда обходят буфер независимо от этого списка. (по умолчанию: [])
  • /pulse config batchingChatPacketsBypass Если true, пакеты, связанные с чатом, обходят буфер для мгновенной доставки. (по умолчанию: true)
  • /pulse config batchingOffThreadBypass Если true, пакеты, отправленные не из потока сервера, обходят буфер. (по умолчанию: true)
  • /pulse config batchingWriteQueue Если true, буферизованные пакеты ставятся в очередь и записываются одной задачей в цикле событий вместо вызова Connection.send() для каждого пакета, что устраняет лямбда-аллокации на каждый пакет и планирование задач между потоками. (по умолчанию: true)
  • /pulse config batchingPacketCoalescing Если true, пакеты из списка объединения собираются вместе в BundlePackets при отправке, уменьшая количество пакетов, получаемых клиентом. (по умолчанию: true)
  • /pulse config batchingCoalescePackets Список имён классов пакетов для объединения в BundlePackets (например, частицы, звуки). Поддерживает внутренние классы через точечный синтаксис (Foo.Bar). (по умолчанию: ClientboundLevelParticlesPacket, ClientboundSoundPacket, ClientboundSoundEntityPacket)
  • /pulse config batchingCoalesceBundleLimit Максимальное количество подпакетов в одном BundlePacket. Ванильный клиент накладывает жёсткий лимит в 4096. (по умолчанию: 4000)
  • /pulse config optExplosionsEnabled Если true, обновления блоков от взрывов группируются по чанкам и заменяются полной пересылкой чанка, если превышают порог. (по умолчанию: true)
  • /pulse config optExplosionsBlockChangeThreshold Количество изменений блоков в одном чанке, необходимое для запуска полной пересылки чанка вместо отдельных обновлений. (по умолчанию: 512)
  • /pulse config optExplosionsLogOptimizations Если true, записывает сообщение каждый раз, когда оптимизация взрывов заменяет обновления блоков пересылкой чанка. (по умолчанию: false)
  • /pulse config metricsEnabled Если true, система сбора метрик активна и вычисляет сетевую статистику. (по умолчанию: true)
  • /pulse config metricsUpdateInterval Как часто (в секундах) система метрик пересчитывает производную статистику. (по умолчанию: 1)
  • /pulse config metricsModuleNetwork Включает модуль сетевых метрик (PPS, пропускная способность). (по умолчанию: true)
  • /pulse config metricsModuleCpu Включает модуль метрик CPU (оценка использования CPU процессом). (по умолчанию: true)
  • /pulse config metricsModuleMemory Включает модуль метрик памяти (оценка сохранённых аллокаций). (по умолчанию: true)
  • /pulse config metricsModuleWriteQueue Включает модуль метрик очереди записи (отслеживание экономии задач в цикле событий). (по умолчанию: true)

Permission Nodes

PulseNet использует Fabric Permissions API для прав на команды. У каждого узла есть запасной ванильный уровень прав для серверов без мода на права.

Общие

УзелПо умолчаниюОписание
pulsenet.pulseALLДоступ к базовой команде /pulse (показывает версию)
pulsenet.reloadGAMEMASTERSПерезагрузить файл конфигурации PulseNet
pulsenet.netstatsGAMEMASTERSПросмотр статистики сети, CPU и памяти
pulsenet.netstats.barGAMEMASTERSПереключить оверлей с боссбаром метрик
pulsenet.netstats.resetGAMEMASTERSСбросить все счётчики метрик в ноль
pulsenet.packetnamesGAMEMASTERSПоказать список наблюдаемых имён классов пакетов и ID каналов

Конфигурация

Команды конфигурации генерируются динамически для каждого значения конфига. `ниже соответствует ключу конфига в camelCase (например,batchingEnabled, metricsUpdateInterval`).

УзелПо умолчаниюОписание
pulsenet.configGAMEMASTERSПоказать все значения конфига
`pulsenet.config..get`GAMEMASTERSПрочитать конкретное значение конфига
`pulsenet.config..set`GAMEMASTERSИзменить конкретное значение конфига

Попробуйте мои другие моды!

Все моды — серверные для Fabric, установка на клиент не требуется.

МодОписаниеСсылки
Arcana NovumКрупнейший серверный мод на магию для Minecraft с полным набором функций! Добавляет мощные предметы, мультиблоки и боссов!GitHub Modrinth CurseForge
Ancestral ArchetypesОчень настраиваемый мод в стиле Origins, позволяющий игрокам выбрать моба и получить уникальные способности!GitHub Modrinth CurseForge
Ender NexusОчень настраиваемые команды /home, /spawn, /warp, /tpa и /rtp — всё в одном моде, каждую можно отключить отдельно.GitHub Modrinth CurseForge
Fabric MailВнутриигровая система виртуальной почты для отправки посылок и сообщений между онлайн- и офлайн-игроками.GitHub Modrinth CurseForge

| | Fabric Trade | Добавляет /trade — безопасный интерфейс обмена между игроками. | GitHub Modrinth CurseForge | | | Limited AFK | Определение и управление AFK с настраиваемыми порогами кика для серверов. | GitHub Modrinth CurseForge | | | Links in Chat | Делает ссылки, отправленные в чат, кликабельными. | GitHub Modrinth CurseForge |


Поддержка и вклад

PulseNet — проект с открытым исходным кодом от PulseMC. Мы рады вкладу в оптимизации, связанные с Netty, Mixin и протоколами.


PulseNet: сердцебиение высокопроизводительной сети.

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

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

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

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

У PulseNet есть сборки для Minecraft 26.1–26.3.

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

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

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

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