
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.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 без ошибок вывода типов.
💾 Установка
Для игроков (Клиент):
- Убедитесь, что у вас установлен BepInEx Pack для Valheim.
- Скопируйте скомпилированный файл ValheimWeaponContourMod.dll в папку Valheim/BepInEx/plugins/.
- Запустите игру один раз для автоматической генерации конфигурационного файла.
Для администраторов (Сервер):
- Поместите ValheimWeaponContourMod.dll в папку BepInEx/plugins/ вашего выделенного сервера.
- В сгенерированном файле конфигурации настройте глобальные эталоны свечения и активируйте параметр блокировки.
⚙️ Настройка конфигурации
Файл конфигурации 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) и автоматически возвращает управление игроку при его выходе в одиночный режим.
📄 Лицензия
Этот проект распространяется под свободной лицензией. Вы можете модифицировать, оптимизировать и адаптировать данный код под нужды своих серверов или сборок модификаций.