You are viewing a potentially older version of this package. View all versions.
Kayfovi-Weapon_Neon_Contour_Mod-2.8.5 icon

Weapon Neon Contour Mod

Adds dynamic neon contours for high-quality weapons. Fully optimized, supports dual/two-handed custom weapons, multiplayer, and includes Server Lockdown config sync.

Date uploaded 16 hours ago
Version 2.8.5
Download link Kayfovi-Weapon_Neon_Contour_Mod-2.8.5.zip
Downloads 17
Dependency string Kayfovi-Weapon_Neon_Contour_Mod-2.8.5

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2200 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2200

README

Weapon Neon Contour Mod (Valheim) — v2.8.5

Модификация для игры Valheim на базе платформы BepInEx, которая добавляет динамические светящиеся (неоновые) контуры вокруг оружия высокого качества. Мод полностью оптимизирован для игры в мультиплеере, поддерживает кастомное оружие из сторонних дополнений и включает систему принудительной синхронизации и блокировки конфигураций на стороне сервера.

🌟 Основные особенности

  • Индикатор качества: Светящийся контур появляется только на оружии 5-го уровня качества и выше.

  • Динамическая палитра: Цвет и пульсация свечения автоматически меняются в зависимости от уровня прокачки предмета:

    • Уровень 5–7: Глубокий синий / Темно-голубой эффект.
    • Уровень 8–10: Неоновый голубой / Магический фиолетовый перелив.
    • Уровень 11–13: Яркий розовый / Пурпурный градиент.
    • Уровень 14+: Огненный оранжевый / Насыщенный красный контур (поддерживает моды на сверх-прокачку).
  • 15 независимых категорий: Индивидуальные настройки для всех типов ванильного и кастомного оружия (Топоры, Мечи, Копья, Магия, Кастеты и их двуручные/парные аналоги).

  • Честный 3D Bloom: Использование нативного игрового шейдера Custom/Piece с поддержкой _EMISSION обеспечивает честное свечение контуров в темноте и интеграцию с графическими модами на постобработку.

  • Server Lockdown: Встроенная система защиты и подчинения конфигураций. Администраторы серверов могут принудительно заблокировать локальные настройки клиентов и транслировать серверный эталон.

🛠 Оптимизация и Производительность

Данный плагин спроектирован с учетом минимизации нагрузки на процессор и видеокарту:

  • Тайм-аут проверок (Кэширование): Тяжелые операции поиска компонентов в иерархии Unity и сетевые запросы ZDO выполняются всего 2 раза в секунду (раз в 0.5с), а не каждый кадр в Update().
  • Zero GC Allocation: Использование кэшированных ID свойств шейдеров (Shader.PropertyToID) вместо строковых названий полностью предотвращает спам памяти и микрофризы от сборщика мусора (Garbage Collector).
  • Мировая привязка (World Space следование): Для двуручного и парного оружия реализована ежекадровая синхронизация матриц трансформации с активным визуальным представлением игрока (VisEquipment). Это полностью решило проблему «отрыва» и зависания неона в воздухе во время анимаций атак и замахов.
  • Обратная совместимость: Код написан строго под стандарт C# 7.3 без использования фич современных версий языка, что гарантирует успешную сборку в любой старой среде Unity / MSBuild без ошибок вывода типов.

💾 Установка

Для игроков (Клиент):

  1. Убедитесь, что у вас установлен BepInEx Pack для Valheim.
  2. Скопируйте скомпилированный файл ValheimWeaponContourMod.dll в папку Valheim/BepInEx/plugins/.
  3. Запустите игру один раз для автоматической генерации конфигурационного файла.

Для администраторов (Сервер):

  1. Поместите ValheimWeaponContourMod.dll в папку BepInEx/plugins/ вашего выделенного сервера.
  2. В сгенерированном файле конфигурации настройте глобальные эталоны свечения и активируйте параметр блокировки.

⚙️ Настройка конфигурации

Файл конфигурации com.yourname.weaponcontour.cfg автоматически создается в папке BepInEx/config/.

Глобальные настройки ([Служебные])

  • LockConfiguration (По умолчанию: true): При включении на сервере все подключившиеся клиенты принудительно перейдут на настройки сервера, а их локальное меню конфигурации будет временно заблокировано.

Настройки категорий (Пример для [Одноручные мечи])

Каждая из 15 категорий оружия имеет следующие параметры:

  • Thickness (Толщина): Масштаб обводки контура относительно оригинального меша.
  • Intensity (Яркость): Сила свечения Emission-материала (для категорий Двуручные топоры, Двуручные ножи и Двуручные кулаки стартовое значение по умолчанию установлено в 0 — скрыто).
  • WaveSpeed (Скорость): Скорость анимации пульсации и перелива цвета.
  • MaxAlpha (Прозрачность): Максимальный порог прозрачности неонового слоя.
  • OffsetX / OffsetY / OffsetZ: Тонкое смещение контура по осям влево/вправо, вверх/вниз и вперед/назад для идеальной калибровки кастомных моделей.

👥 Сетевая синхронизация (RPC)

Синхронизация данных реализована через оптимизированный строковый RPC-метод RPC_WeaponContour_SyncString встроенного сетевого движка Valheim (ZRoutedRpc).

  • Данные передаются в виде легкой текстовой строки при успешном подключении игрока (OnNewConnection).
  • Метод полностью автономен, не требует подключения сторонних тяжелых библиотек игры (таких как assembly_utils.dll) и автоматически возвращает управление игроку при его выходе в одиночный режим.

📄 Лицензия

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

CHANGELOG

История изменений (Changelog) — Weapon Neon Contour Mod

Все заметные изменения в этом проекте будут документироваться в данном файле.

2.7.6 Добавлено

  • Система Server Lockdown (Блокировка конфигурации): Добавлен глобальный параметр LockConfiguration в категорию [Служебные]. Если он включен (true) на стороне сервера, плагин принудительно блокирует меню настроек клиентов и подчиняет их серверным эталонам.
  • Исправлена критическая ошибка приведения типов

2.7.7 Изменено

  • Стабилизация сетевого кода: Полностью удален экспериментальный перехват конфигураций через события игрового текстового чата (Chat.OnChatMessage), вызывавший полное исчезновение контуров со всех предметов.
  • Безопасный RPC-движок: Возвращена работа через системный ZRoutedRpc, но тип данных изменен с тяжелого ZPackage на легкую строку string. Это полностью решило проблему без необходимости подключения внешней библиотеки assembly_utils.dll.
  • Сетевое подчинение конфигов (Server Sync): Реализована автоматическая синхронизация настроек от сервера к подключающимся игрокам. Клиенты временно перенимают параметры сервера на время сессии, не перезаписывая локальный файл конфигурации на диске. При отключении локальные настройки возвращаются.

2.7.8 Изменено

  • Мировая синхронизация мешей (World Space): Изменен фундаментальный подход к отрисовке неона на персонажах. Вместо дублирования скрытых мешей оригинального статического префаба, плагин теперь динамически находит активный меш оружия в руках игрока (VisEquipment) и принудительно копирует его позицию и поворот в мировых координатах каждый кадр.
  • Времено отключен неон: Для категорий Двуручные топоры, Двуручные ножи и Двуручные кулаки установлено в 0f (неон скрыт по умолчанию до ручной настройки).

2.7.9 Добавлено

  • Разделение категорий оружия: Добавлены "Двуручные кулаки" для корректного разделения и калибровки тяжелых кастетов/когтей из контентных модификаций.

2.8.0 Изменено

  • Безопасное чтение API Valheim: Обойти уровни защиты protected и private для переменных m_moveDir и m_wallRunning путем их замены на открытый метод GetMoveDir() и стандартный расчет скорости физики Unity GetVelocity().

2.8.1 Неисправлено

  • Зависание двуручного оружия в воздухе:

2.8.2 Добавлено

  • Новые раздельные категории: В систему распределения добавлены три независимые категории: "Двуручные топоры", "Двуручные ножи", "Двуручные дубины".

2.8.3 Изменено

  • Обновлен метод сортировки DetermineCategory(): двуручное оружие теперь безошибочно распределяется по типам навыков и маскам имен префабов (battleaxe, ripper, sled), предотвращая их ошибочное попадание в базовые одноручные группы.
  • Изменена стартовая калибровка толщины по умолчанию для категории "Одноручные мечи": defaultThickness установлено строго в значение 1f.

2.8.4 Оптимизация

  • Снижение нагрузки на FPS:
  • Очистка памяти от GC: Строковые обращения к свойствам шейдеров заменены на кэшированные
  • Честный Bloom и Emission: Произведена замена плоского UI-шейдера на нативный 3D-шейдер игры

2.8.5 Исправлено

  • Мультиплеерная синхронизация: Добавлено чтение сетевых ZDO-ключей данных игры (RightItemQuality и LeftItemQuality). Это позволило неонам корректно отображаться на оружии других игроков при просмотре со стороны в сетевой игре.