Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Технические заметки, ИИ и обслуживание [RU]
Updated a week agoТехническая памятка для обслуживания Valheim Enhanced Difficulty.
Здесь зафиксировано, как создавалась/проверялась пользовательская конфигурация, какие файлы считаются авторитетными и какие текущие значения нужно осознанно перепроверять в будущих релизах.
Использование ИИ
Часть пользовательской конфигурации и балансной работы создавалась или корректировалась с помощью инструментов искусственного интеллекта.
ИИ использовался для:
- разбора и анализа больших cfg/json/yml;
- генерации повторяющихся блоков конфигурации;
- сравнения оригинальных и изменённых файлов;
- расчёта вероятностей и остаточных значений;
- подготовки биомных записей Drop That;
- поиска дубликатов и конфликтующих/пересекающихся настроек;
- проверки структуры пакета;
- проверки соответствия упакованных конфигов финальному экспортированному профилю.
Финальный выбор модов, решения по балансу и публикации принимались автором модпака.
ИИ не использовался для изменения исходного кода входящих сторонних модов. Эти моды остаются работой их авторов/команд.
Source-of-truth файлы
| Система | Авторитетный файл в сборке |
|---|---|
| CLLC | config/org.bepinex.plugins.creaturelevelcontrol.cfg |
| Основные настройки EpicLoot | config/randyknapp.mods.epicloot.cfg |
| Пользовательские таблицы существ/редкостей EpicLoot | config/EpicLoot/baseconfig/loottables.json |
| Основное поведение Drop That | config/drop_that.cfg |
| Дополнительный Drop That | config/DropThat_Custom/Biomes/drop_that.character_drop.*.cfg |
| DropMoreLoot | config/TastyChickenLegs.DropMoreLoot.cfg |
| DataForge general | config/sighsorry.DataForge.cfg |
| Баланс рецептов DataForge | config/DataForge/recipes_balance.yml |
| Баланс построек/станций DataForge | config/DataForge/pieces_balance.yml |
Файлы/папки с названиями вроде ОРИГИНАЛЫ, — EDITED, — ЧИСТЫЙ, copy/backup и .bak-fran-managed-* не являются опубликованным source of truth. Они были намеренно исключены из финального пакета.
Проверка опубликованной игровой сборки
Опубликованная игровая конфигурация собиралась из:
MyPack_1790448282453.r2z
Во время проверки пакета было зафиксировано:
- 58 включённых модов из
export.r2x; - 58 manifest dependencies;
- 153 включённых конфигурационных файла;
- 30 backup/user-state файлов исключено;
- 22 включённых JSON успешно распарсены;
- обязательные корневые файлы пакета проверены;
- пользовательский EpicLoot
MagicEffectsCountсохранён; - выборочно проверены таблицы EpicLoot 0★–5★;
- каждый включённый config побайтово совпадал с исходным
.r2z; - итоговый ZIP прошёл CRC-проверку.
Версия 1.0.1 меняла только документацию. Игровые зависимости/конфиги остались такими же, как в проверенной игровой сборке 1.0.0.
Текущее поведение, которое нужно осознанно перепроверить перед ребалансом
1. Чёрный лес Drop That использует DropOnePerPlayer=true
Есть 22 активные дополнительные записи Чёрного леса, и во всех 22 этот флаг включён.
По документации Drop That этот режим выдаёт один prefab на игрока и игнорирует AmountMin / AmountMax. Поэтому записанные диапазоны вроде Coins 150–550 сейчас не используются как диапазоны количества для этих записей.
Wiki фиксирует текущий профиль и ничего не исправляет автоматически. Если задумка — использовать именно диапазоны, флаг нужно изменить и протестировать в будущей версии модпака.
2. У Draugr на Болотах сейчас большой Iron Scrap
В активной дополнительной таблице Draugr находится:
- prefab:
IronScrap - количество: 20–50
- шанс: 15%
DropOnePerPlayer=false
Это точное значение финального профиля. Его стоит осознанно перепроверить перед следующим проходом баланса болот/железной прогрессии.
3. EpicLoot 10/20/25/35/40/45 — raw значения таблицы
Пользовательские таблицы существ содержат 0-or-1-item значения 10/20/25/35/40/45% для 0★–5★. При этом в активном основном cfg EpicLoot стоит:
Global Drop Rate Modifier = 1.8
EpicLoot описывает эту настройку как глобальный модификатор вероятности дропа. Поэтому значения звёзд следует называть raw/base значениями пользовательской таблицы, а не гарантированными итоговыми вероятностями.
Кроме того, Item Drop Ratio, Shard Stone Drop Ratio, Items Unidentified Drop Ratio и Materials Drop Ratio EpicLoot описывает как относительные веса, а не четыре независимых процента.
4. Исключения Skeleton в EpicLoot
Skeleton всё ещё использует RefObject = Tier1Mob.
Skeleton_Poison всё ещё использует RefObject = Tier2Mob.
Поэтому эти две записи не используют явную пользовательскую таблицу 0★–5★. Skeleton_DeepNorth настроен явно.
5. Отключённые биомные файлы Drop That
Текущее состояние:
- Ocean: 0 активных / 1 секция
- Ashlands: 0 активных / 10 секций
- Deep North: 0 активных / 24 секции
В текущем релизе это заготовки, а не работающие пользовательские системы дополнительного дропа.
Точные контрольные значения баланса
Полезные значения для сравнения после будущего пересоздания конфигов:
| Система | Контрольное значение |
|---|---|
| CLLC | Базовый HP 144%, HP/звезду 110%, базовый урон 115%, урон/звезду 55% |
| CLLC | Multiplayer HP/игрок 60%, урон/игрок 8%, радиус 200 м |
| CLLC | Доп. дроп/звезду 25%, boss loot/star 35%, boss drop multiplier 2× |
| EpicLoot | Global Drop Rate Modifier = 1.8 |
| EpicLoot | Пользовательские raw 0★–5★ значения одного предмета: 10 / 20 / 25 / 35 / 40 / 45% |
| EpicLoot | Явно изменённых object-таблиц существ: 76 |
| Drop That | 231 пользовательская секция; 186 активно, 45 отключено |
| Drop That | Во всех пользовательских секциях ScaleByLevel=false |
| DropMoreLoot | whitelist включён, 149 уникальных prefab ID |
| DataForge | 524 override-рецепта; 70 piece overrides |
История версий
1.0.0
- Первый публичный игровой релиз.
- 58 зафиксированных зависимостей.
- Пользовательская конфигурация сложности CLLC.
- Пользовательские таблицы существ/количества эффектов EpicLoot.
- Дополнительные биомные таблицы Drop That.
- Whitelist/множители DropMoreLoot.
- DataForge-ребаланс рецептов/построек.
- Набор контентных и QoL-зависимостей.
1.0.1
- Игровая конфигурация не менялась.
- Расширен README.
- Добавлена документация English + Русский.
- Улучшено описание CLLC/EpicLoot/Drop That и использования ИИ.
Чеклист обслуживания перед каждым игровым релизом
Перед публикацией:
- экспортировать свежий
.r2z; - сравнить точные версии зависимостей с прошлым релизом;
- сделать diff авторитетных CLLC/EpicLoot/Drop That/DropMoreLoot/DataForge файлов;
- распарсить/валидировать все JSON/YAML, которые попадут в пакет;
- найти backup и пользовательские save/state файлы;
- проверить дубликаты section ID в Drop That;
- отдельно проверить
DropOnePerPlayerиScaleByLevel; - учитывать EpicLoot
Global Drop Rate Modifierпри описании процентов; - протестировать чистый профиль;
- после серьёзных игровых изменений проверить multiplayer/server sync;
- обновить README, CHANGELOG и затронутые Wiki-страницы;
- повысить версию пакета;
- при обычном обновлении не менять Thunderstore Team/name.
Правило документации
Если документация расходится с конфигурацией, авторитетным источником является реально поставляемый конфиг. Перед изменением цифр в Wiki нужно проверять текущий экспортированный профиль, а не переносить значения из памяти или старого README.