AzuModsValheim1Compat
Preloader compatibility patch for Valheim 1.0.7 / Unity 6. Fixes ZRoutedRpc.Everybody MissingFieldException in AzuCraftyBoxes, AzuAutoStore, and other Azumatt mods.AzuModsValheim1Compat
AzuModsValheim1Compat is a lightweight BepInEx Preloader compatibility patch for Valheim 1.0.7 (Unity 6 update). It resolves the game-crashing MissingFieldException: Field not found: .ZRoutedRpc.Everybody in mods created by Azumatt (including AzuCraftyBoxes, AzuAutoStore, and others).
[!IMPORTANT] Temporary Compatibility Patch: This is an unofficial community fix intended to keep your favorite mods functional until the original author, Azumatt, releases official updates. Once official updates are released on Thunderstore, you can simply uninstall this patch.
The Problem Explained
With the release of Valheim 1.0.7 (Unity 6 engine update):
- The game's internal
ZRoutedRpc.Everybodyfield was changed from apublic static readonly longfield to apublic const long(compile-time literal). - Older versions of Azumatt's
ServerSynclibrary embedded inside his mods attempt to read this via the IL instructionldsfld ZRoutedRpc::Everybody. - Under .NET / Mono CLR runtime, calling
ldsfldon a compile-time literal throwsMissingFieldException: Using static instructions with literal fieldinside the static constructor (.cctor()), completely preventing the mods from loading.
What This Patch Does
This patch runs in the BepInEx Preloader phase before the game engine starts plugins:
- In-Memory
ZRoutedRpc.EverybodyRestoration: ConvertsZRoutedRpc.Everybodyfrom a compile-timeconstback into an active runtime static field in memory. No mod DLLs need to be modified on disk! ServerSync and all Azumatt mods run cleanly without metadata corruption. - API Compatibility Bridges: Injects backwards-compatibility bridge methods into
assembly_valheim.dllfor breaking changes introduced in Valheim 1.0.7:PlayerProfile.m_itemCraftStats: Injects missingm_itemCraftStatsdictionary and auto-initializes it in constructor (fixes Blacksmithing character select & save/load crash).Inventory.Load: Renames redundant 2-parameter overload to eliminateAmbiguousMatchExceptionin Harmony patches (fixes AzuAutoStoreInventorySelectSameItemAfterLoad).InventoryGrid.OnRightClick: RestoresOnRightClick(UIInputHandler)method and redirectsUpdateGui(fixes AzuAutoStore Favoriting and button handling).Inventory.AddItem: Restores 8-parameter overload (fixes Smoothbrain'sItemDataManagershared library in Cooking, Blacksmithing, ExtraSlots, and EpicLoot).ItemDrop.ItemData.GetTooltip: Restores 5-parameter static overload (fixes Blacksmithing & Cooking crashes).Character.Message: Restores 4-parameter overload.SEMan.AddStatusEffect: Restores 4-parameter overloads (both StatusEffect and int hash).Inventory.IsTeleportable: Restores 0-parameter overload.Inventory.AddItem: Restores 4-parameter overload.EffectList.Create: Restores 5-parameter overload.Terminal.ConsoleCommand: Restores 12-parameter constructor.InventoryGrid.Element: Restores nested type definition referencing newInventoryElement.
- AzuCraftyBoxes EpicLoot Compatibility: Automatically updates
EpicLootEnchantingUIpatches inAzuCraftyBoxes.dllto reference the mergedEpicLootassembly, resolvingTypeLoadException: Could not load type 'EpicLoot_UnityLib.InventoryManagement' from assembly 'EpicLoot-UnityLib'. - VisEquipment.AttachArmor Call-Site Upgrading: Automatically upgrades legacy 2-parameter
AttachArmorcalls in plugins (such asMagicPlugin) to the 1.0.7 3-parameter signature without colliding withEpicLootHarmony patches. - Blacksmithing Transpiler Compatibility: Automatically bypasses foreign hook scanning in
Blacksmithing.ApplyTranspilerToAll, eliminatingInvalidOperationException: Sequence contains no matching elementin Unity 6 when playing withAzuCraftyBoxes. - In-Memory
Inventory.AddItemTranspiler Compatibility: Provides the expectedZLog.Logplaceholder inside the 4-parameterInventory.AddItembridge so outdated transpilers (likeAzuAutoStore/ MUCRemoveLogging) succeed in memory without throwingArgumentOutOfRangeException. This completely unblocksItemDataManager(Cooking, Blacksmithing, ExtraSlots) and ensures character creation and character saving (Inventory.Save/OnNewCharacterDone) work seamlessly without any exceptions. - Allows your modpack to load smoothly and cleanly!
Supported Mods
- AzuCraftyBoxes (Craft from nearby chests)
- AzuAutoStore (Auto-deposit items into containers)
- AzuExtendedPlayerInventory
- AzuAntiArthriticCrafting
- AzuClock
- FactionAssigner
- MistBeGone
- PetPantry
- Recycle_N_Reclaim
- CurrencyPocket
- SaveCrossbowState
- TrueInstantLootDrop
Installation
Via r2modman / Thunderstore Mod Manager (Recommended)
- Install this mod into your profile.
- Start the game through the mod manager as usual.
Manual Installation
- Extract
AzuModsValheim1Compat.dllinto yourBepInEx/patchers/AzuModsValheim1Compat/folder. - Launch Valheim via Steam or BepInEx.
Українська (Опис українською)
AzuModsValheim1Compat — це прелоадер-патч сумісності BepInEx для Valheim 1.0.7 (Unity 6). Він усуває критичну помилку:
MissingFieldException: Field not found: .ZRoutedRpc.Everybody Due to: Using static instructions with literal field
у модах від Azumatt (AzuCraftyBoxes, AzuAutoStore, AzuExtendedPlayerInventory та інших).
Що робить патч:
- Під час запуску гри (Preloader) перевіряє плагіни в папці
BepInEx/plugins. - Знаходить збірки модів Azumatt та замінює застарілу IL-інструкцію звернення до
ZRoutedRpc.Everybodyна коректну константу0L. - Створює резервну копію оригіналу (
.orig.bak). - Дозволяє користуватися модами без вильотів та зависань!
[!NOTE] Це тимчасове рішення для спільноти. Як тільки Azumatt випустить офіційне оновлення своїх модів на Thunderstore, цей патч можна буде просто видалити.
Credits & License
- Developed for the Valheim modding community.
- MIT License.


