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

Combat Toggle

Combat Toggle — это лёгкий серверный мод для контроля PvP, который предотвращает случайные или нежелательные бои между игроками, требуя взаимного согласия перед тем, как урон в PvP станет возможным. Бой активируется только тогда, когда оба игрока находятся в режиме Combat.

Forge
Загрузчики
Forge
Скачиваний на Modrinth
569
Подписчиков на Modrinth
0
версии
3
Обновлён
4 сентября 20264 сент.
Опубликован
в 2026
Peace Mode — The visual displayed when the player is in Peace mode. · свайп

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

Работает на Forge
Для Minecraft 1.19.2, 1.20.1
Нужен на сервере; в игре — по желанию
Последняя версия — 2.0.0 от 4 сентября 2026
Лицензия GPL-3.0-or-later — бесплатно
Где нужен
В игренеобязателенНа сервереобязателен

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

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

Combat Toggle

Устанавливаемая на сервер система PvP по желанию с отметкой боя, умными кулдаунами и полным набором админ-инструментов — для Minecraft 1.19.2 Forge.

Combat Toggle позволяет каждому игроку на вашем сервере выбрать, можно ли его атаковать. Это готовое решение для модпака под проблему «одни хотят PvP, другие нет» — без костылей с границами мира, без плагинов регионов, без сторонних зависимостей. Установите его на свой выделенный сервер, и ванильные клиенты смогут заходить и использовать /ct, не трогая свою игру.


Что он делает

  • Режим мира — PvP выключен. Стрелы, мечи, зелья и снаряды других игроков проходят безвредно.
  • Режим боя — PvP включён. Вас могут ударить, и вы можете ударить в ответ.
  • Каждый игрок решает сам. По умолчанию — Мир: новым игрокам нужно включить PvP самостоятельно.
  • Устанавливается на сервер. Ванильные клиенты могут заходить и переключать режимы через /ct без установки на клиент. Модифицированные клиенты дополнительно получают переназначаемую клавишу V и индикатор HUD на экране.

Возможности

Основное

  • Универсальные команды. /ct, /combat, /peace и /combattoggle status работают с любого клиента — модифицированного или ванильного.
  • Переключение одной клавишей. Клавиша по умолчанию: V (только для модифицированных клиентов). Полностью переназначается на каждом клиенте.
  • HUD-оверлей. Пиксельная иконка 51×19 (щит для Мира, скрещённые мечи для Боя). Настраиваемое положение (9 якорей + произвольные XY), масштаб и видимость для каждого режима. Автоматически скрывается в инвентарях и когда HUD отключён клавишей F1.
  • Отметка боя. Любое PvP-столкновение помечает и атакующего, и жертву на настраиваемое время (по умолчанию 30с). Пока игрок помечен, он не может переключиться в режим Мира — никакого выхода из боя через переключатель.
  • Умные кулдауны. По умолчанию кулдаун начинается только когда PvP реально происходит, а не когда игроки переключаются. Игроки могут свободно менять режимы во время фермерства, строительства или исследования.
  • Сохранение состояния. Режим, таймер отметки и кулдаун переживают выходы из игры, возрождения, смены измерений и перезапуски сервера. Хранится в Forge capability, сериализуемой в данные игрока.
  • Двойная защита PvP на событиях. Основная отмена на LivingAttackEvent (приоритет HIGH) — отбрасывание, звук урона и критерий достижения PLAYER_HURT_ENTITY никогда не срабатывают на целях в Мире. LivingHurtEvent работает как дополнительная защита. Определение атакующего проходит по владельцам снарядов, владельцам активированного TNT и прирученным питомцам, так что волки, снежные големы и подожжённый TNT определяются корректно.

Социальное

  • Цвет никнеймов. Игроки в режиме Боя получают красные никнеймы; игроки в Мире — синие. Отключите, если уже используете команды таблицы очков для чего-то другого.
  • Эмодзи/текстовые префиксы. Настраиваемые символы (по умолчанию: скрещённые мечи и кружка кофе) появляются перед именем игрока, чтобы состояние было безошибочно видно с любого ракурса.
  • Ограниченная обратная связь. Атакующие, попавшие по цели в режиме Мира, получают однострочное сообщение в чат с объяснением, почему ничего не произошло (с ограничением, чтобы не спамило).

Команды игрока

Права не требуются.

КомандаНазначение
/ctПереключить Бой ↔ Мир.
/combatУстановить себе режим Боя.
/peaceУстановить себе режим Мира.
/combattoggle statusПоказать свой режим, отметку и кулдаун.
/combattoggle helpПоказать все команды, которые вы можете выполнить (админ-записи скрыты для не-OP).

Админ-команды

Требуется уровень OP 2.

КомандаНазначение
/combattoggle get <player>Посмотреть состояние другого игрока.
/combattoggle set <player> <peace|combat> [bypass]Принудительно задать режим. bypass=true игнорирует кулдаун и защиту от тега.
/combattoggle tag <player> [seconds]Вручную выдать боевой тег (1–3600с).
/combattoggle untag <player>Снять боевой тег.
/combattoggle resetcooldown <player>Сбросить и кулдаун переключения, и кулдаун PvP.
/combattoggle resyncОбновить команды таблицы очков и синхронизировать состояние HUD для всех онлайн (/combattoggle reload — алиас).

Информация о сервере/модпаке

  • Состояние на основе capability. Данные игрока хранятся в Forge capability (CombatToggleData); один и тот же экземпляр в памяти на всю сессию игрока, без постоянной нагрузки на NBT при каждом вызове. Публичного API сейчас нет, но в будущем минорном обновлении его можно будет добавить без перестройки архитектуры.
  • Структурированное логирование SLF4J на уровнях DEBUG/INFO для каждого решения по PvP, запроса переключения и вызова команды. Хорошо дружит с ops-пайплайнами.
  • Сообщения через переводы. Каждая строка, видимая игроку, — это ключ перевода (combattoggle.msg.*). Выпускайте переводы без патчей кода.
  • Сетевой handshake, терпимый к ваниле. Канал использует NetworkRegistry.acceptMissingOr(PROTOCOL::equals); ванильные клиенты проходят, пакеты синхронизации молча отбрасываются для пиров без канала.

Установка

  1. Установите Minecraft Forge 43.3.0+ для Minecraft 1.19.2.
  2. Поместите combattoggle-1.2.0.jar в папку mods/ вашего сервера (или клиента).
  3. Запустите. При первом запуске combattoggle-server.toml создаётся в директории serverconfig/ вашего мира, а combattoggle-client.toml — в папке конфигов клиента.

Ставится на сервер? Да. Установите только на выделенный сервер, и ванильные клиенты смогут заходить и использовать /ct, /combat, /peace и /combattoggle status без установки на клиенте. Игроки, которые дополнительно установят мод на клиенте, получат вдобавок клавишу V и индикатор HUD — приятное дополнение поверх той же серверной логики.


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

  • combattoggle-server.toml
КлючПо умолчаниюЧто делает
cooldownSeconds600Длительность кулдауна (10 мин). Установите 0, чтобы полностью отключить кулдаун.
combatTagSeconds30Как долго держится боевой тег после события PvP.
requireBothCombatEnabledtrueЕсли true, PvP работает только когда и атакующий, и цель в режиме Combat.
forceCombatWhileTaggedtrueПринудительно переводить игроков с тегом в режим Combat.
allowToggleWhileTaggedfalseЕсли false, игроки с боевым тегом не могут переключиться в Peace.
cooldownTriggersOnPvptrueКулдаун начинается, когда игрок наносит или получает урон в PvP.
cooldownTriggersOnTogglefalseКулдаун начинается, когда игрок переключается.
cooldownAppliesToPeaceOnlytrueКулдаун блокирует только Combat→Peace; Peace→Combat всегда мгновенно.
allowAdminBypassCooldowntruebypass=true в /combattoggle set действительно работает.
useScoreboardTeamstrueОтключите, чтобы полностью убрать Combat Toggle из таблицы очков.
useEmojiPrefixes / useNameplateColorstrue / trueНезависимые переключатели для двух визуальных эффектов.
combatEmoji / peaceEmoji⚔ / ☕Любой Unicode из BMP.
combatTeamName / peaceTeamNamect_combat / ct_peaceПереименуйте, чтобы избежать конфликтов.
  • combattoggle-client.toml
КлючПо умолчаниюЧто делает
hudEnabledtrueГлавный переключатель иконки HUD.
hudShowInCombatModetrueПоказывать иконку в режиме Combat.
hudShowInPeaceModetrueПоказывать иконку в режиме Peace.
hudAnchorTOP_CENTERОдно из значений: TOP_LEFT, TOP_CENTER, TOP_RIGHT, CENTER_LEFT, CENTER, CENTER_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, CUSTOM.
hudOffsetX0Смещение в пикселях внутрь от якоря. Абсолютная координата X на экране, если hudAnchor=CUSTOM.
hudOffsetY6Смещение в пикселях внутрь от якоря. Абсолютная координата Y на экране, если hudAnchor=CUSTOM.
hudScale1.0Диапазон 0.5–3.0.
hudShowTimerstrueПоказывать текст обратного отсчёта тега/перезарядки под иконкой.

Обновление

  • Режим сохраняется. Какой режим (Combat или Peace) был у каждого игрока последним, тот и переносится при первом входе в 1.2.0.
  • Активные теги и перезарядки сбрасываются при первом входе в 1.2.0. Постоянные таймеры 1.1.x были в миллисекундах реального времени без гарантии источника отсчёта; преобразовать их в новую игровую тиковую шкалу безопасно нельзя, поэтому они отбрасываются. Новые теги/перезарядки начиная с 1.2.0 используют монотонный, устойчивый к перезапуску игровой тиковый дедлайн.
  • Серверный ключ конфига showHud удалён. Видимость HUD теперь полностью на стороне клиента через hudEnabled в combattoggle-client.toml. Существующие конфиги операторов сохранят осиротевший ключ при первом чтении; Forge запишет предупреждение о неиспользуемом ключе. Безвредно.
  • Сетевой протокол — "1" для линейки 1.2.x. Модифицированные клиенты 1.1.x не могут подключиться к серверу 1.2.0 (рукопожатие отклоняется); им нужно обновиться. Ванильные клиенты не затронуты.

Совместимость

  • Minecraft: 1.19.2
  • Forge: 43.3.0 или новее
  • Java: 17
  • Зависимости: Нет. Ни Kotlin, ни Architectury, ни Cloth Config.
  • Другие PvP-моды: Должен сосуществовать с анти-читом, защитой регионов и KubeJS. useScoreboardTeams=false решает конфликты с модами, которые владеют таблицей очков.
  • Только для мультиплеера? Нет. Одиночная игра работает; переключатель всё равно применяется к взаимодействиям урона с враждебными железными големами и т.д. (как и ожидается для «PvP включён/выключен»).

Известные ограничения

  • Источники урона на основе миксинов могут обходить принудительное применение. Combat Toggle отменяет на обоих событиях LivingAttackEvent (основное) и LivingHurtEvent (запасное). Несколько модов направляют урон через кастомные миксины, которые обходят оба — они будут попадать по целям в Peace. Откройте issue с воспроизведением, если столкнётесь с этим.
  • Нет белого списка измерений. Правила PvP применяются единообразно во всех измерениях.
  • /combat и /peace — распространённые буквальные пространства имён. Если другой мод или плагин регистрирует тот же корень, поведение зависит от порядка регистрации — используйте запасные /ct и `/combattoggle `.
  • Публичного API для интеграции модов сегодня нет. Состояние игрока хранится во внутренней capability Forge; будущий минорный релиз может его открыть без перестройки архитектуры.
  • У ванильных клиентов нет HUD и привязки клавиш. Используйте /ct. Так задумано.

Лицензия и исходный код

  • Лицензия: GPL-3.0
  • Исходный код и баги: https://github.com/otectus/combat-toggle
  • Домашний модпак: Сделан для модпака Runecraft 1.19.2 Forge. Кидай в любой другой — он самостоятельный.

Pull requests и баг-репорты приветствуются. Пожалуйста, прикладывай логи сервера, свой combattoggle-server.toml и минимальный способ воспроизведения при создании issue.

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

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

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

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

У Combat Toggle есть сборки для Minecraft 1.19.2, 1.20.1.

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

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

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

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