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.
SharedRecipeFinderReborn
On container open, shows which unknown materials and foods a shared chest contains. Successor of SharedRecipeFinder. Author: SoulEmper0r
By SoulEmper0r
| Date uploaded | 2 weeks ago |
| Version | 0.1.0 |
| Download link | SoulEmper0r-SharedRecipeFinderReborn-0.1.0.zip |
| Downloads | 17 |
| Dependency string | SoulEmper0r-SharedRecipeFinderReborn-0.1.0 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.
Preferred version: 5.4.2202README
SharedRecipeFinderReborn
Замена легаси-мода SharedRecipeFinder (SoulEmper0r, 28.03.2024) под актуальную Valheim.
Что делает
При открытии сундука/контейнера показывает через MessageHud материалы и еду,
которых игрок ещё ни разу не получал (Player.IsKnownMaterial == false):
- на каждый неизвестный предмет — unlock-уведомление с иконкой и названием (
$msg_newitem); - одно итоговое сообщение
TopLeft, если неизвестные кандидаты нашлись; - при
Debug.Logging=true— строка в BepInEx-лог: имя контейнера и число неизвестных.
Работает на клиенте, ничего не разблокирует, серверу ничего не шлёт. Повторяющиеся стаки схлопываются в одно уведомление (иконка берётся у первого стака).
Почему замена, а не «починить DLL»
Старой DLL 6 КБ, исходников нет; декомпилят показал вызов старой сигнатуры
Character.Message(MessageType, string, int, Sprite) — в установленной игре она всё ещё
существует (проверено декомпиляцией Player), но бинарник собран против другого API-среза,
поэтому продолжать с него нельзя. Логика крошечная — переписана начисто.
Отличия от оригинала: работает на открытии контейнера (а не инвентаря), добавлены
названия предметов, дедупликация, конфиг General.Enabled и Debug.Logging,
BepInIncompatibility против старого GUID vnoisy.sharedrecipefinder.plugin.
Сборка
dotnet build E:\Storage\Personal\Pet-Projects\SharedRecipeFinderReborn\SharedRecipeFinderReborn.csproj -c Release
# DLL: bin\Release\SharedRecipeFinderReborn.dll
Тесты (вне игры; Harmony-тест вне игры помечается [skip] — десктопный рантайм не может
читать тела Unity-методов, то же ограничение у TerraHoe.WireTest):
dotnet build E:\Storage\Personal\Pet-Projects\SharedRecipeFinderReborn\tests\SharedRecipeFinderReborn.Tests\SharedRecipeFinderReborn.Tests.csproj -c Release
E:\Storage\Personal\Pet-Projects\SharedRecipeFinderReborn\tests\SharedRecipeFinderReborn.Tests\bin\Release\net462\SharedRecipeFinderReborn.Tests.exe
Установка
Скопировать DLL в профиль r2modman:
profiles\2.0\BepInEx\plugins\SoulEmper0r-SharedRecipeFinderReborn\
(или импортировать как локальный мод в r2modman).
Известные ограничения
- Внутриигровое поведение (появление уведомлений при открытии сундука) автоматическими тестами не проверяется — вне игры Unity-типы не загружаются. Проверять в игре.
- Дедупликация в пределах одного открытия сундука; между открытиями напоминание повторяется, пока предмет не получен — так задумано.
- Патчится
InventoryGui.Show(Container, int); если IronGate сменит сигнатуру, тестpatch target resolves on installed gameэто поймает.
Дисклеймер
На серверах с усиленным анти-читом/кастомными правилами использование клиентских модов — на свой страх и риск; мод только читает инвентарь контейнера и пишет в HUD.
CHANGELOG
Changelog
1.0.1
- Открытие сундука теперь изучает его предметы и разблокирует доступные рецепты, а не просто показывает уведомления.
- Изучаются все типы предметов. Содержимое сундука остаётся на месте.
- В мультиплеере знания получает только игрок, открывший сундук.
1.0.0
- Мод обновлён под актуальную версию Valheim.
- Оригинальный мод — SharedRecipeFinder (VAG).