Valheim10Compatibility

v1.4.2·Updated 2026-10-04

Lets pre-1.0 mods load and run on Valheim 1.0 without recompiling: sector API, console commands, renamed hooks, PieceTable lists, by-name Harmony patches steered past 1.0's overloads, a Hoverable defa

About this mod Author’s original text

⚒️ Valheim 1.0 Compatibility (MigrationStation)

The Tenth World turned over, and half the realm's mods forgot how to speak to it. These bridges teach them the new tongue.

Valheim10Compatibility is a BepInEx preloader patcher for Valheim 1.0.x+ (Deep North; built against 1.0.7, verified unchanged through the 1.0.12 hotfix — see CHANGELOG.md). It rewrites the game's assemblies in memory, before a single line of game code runs, and restores the method shapes that 1.0 took away — so plugins compiled against 0.221.12 and earlier load and run without being recompiled. It also hooks Harmony's own lookups, so a plugin that patches a method by name survives both the bridges and the overloads vanilla added in 1.0, and gives one interface method a default body, so a plugin class that never implemented it still passes the runtime's own VTable check. Its companion runtime plugin keeps a mod's item-name collision with new 1.0 content from aborting startup on client and server alike.

This is not a gameplay mod. It changes nothing you can see. It exists for one week of the year: the week a major Valheim release lands and the mod list you depend on has not caught up yet. 🛡️

⚠️ Read This First

Install it when your admin tools and utility mods break on 1.0 and their authors have not shipped 1.0 builds yet. Remove it when they have. A source fix in the mod itself is always better than a bridge — it survives the next update, and it does not depend on a preloader being present and correctly ordered.

Three things it will never do:

  • 🚫 It will not guess. If a bridge cannot carry the old meaning across, it is not injected. An unresolved reference kills one method when it is first called. A wrong answer corrupts a world quietly, at three in the morning, and nobody knows why.
  • 🚫 It will not trade a call site for a plugin. See The One Law below — this is the rule that shapes the whole tool.
  • 🚫 It will not lie about what it did. Every bridge reports exactly one outcome in the log: Injected, present natively, SKIPPED or BLOCKED. A run against a build it does not fully match is loud, not quietly thin.

🪓 The Ritual of Installation

  • Install BepInExPack Valheim 5.4.2350 or newer — 1.0 runs on Unity 6, and older packs die when Unity's log callbacks are stripped.
  • Install this package with your mod manager, or unzip it over your profile by hand.
  • Start the game or dedicated server and read BepInEx/LogOutput.log.

The zip carries patchers/Valheim10Compatibility.Patcher.dll and plugins/Valheim10Compatibility.Adapter.dll at its root; your manager maps each top-level folder onto the profile's BepInEx/ folder of the same name. The two DLLs land in different folders, and neither works from the other's:

| File | Goes to | Why |

|:--|:--|:--|

| Valheim10Compatibility.Patcher.dll | BepInEx/patchers/ | BepInEx runs preloader patchers only from patchers, before the game assemblies load. Dropped in plugins/ it never executes, and nothing will tell you so. |

| Valheim10Compatibility.Adapter.dll | BepInEx/plugins/ | An ordinary chainloaded plugin. Dropped in patchers/ it is never loaded. |

Unpacking by hand? Copy the.dll out of patchers/ into BepInEx/patchers/ and the one out of plugins/ into BepInEx/plugins. Do not flatten them together. 📦

Server and clients: install it on whichever side runs the broken mod. It touches no network protocol and changes no save format, so a patched server and an unpatched client talk to each other exactly as they did before.

⚖️ The One Law

A bridge is only worth injecting if it leaves the plugin better off.

Here is the trap that makes this tool different from every naive "just add the old overload back" patcher.

When a plugin writes [HarmonyPatch(typeof(Inventory), "Changed")] with no argument types, Harmony resolves that target by name alone. Add a second method with that name — exactly what a compatibility bridge does — and the lookup becomes ambiguous. HarmonyX throws out of PatchAll(), and the entire plugin dies at lo

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.

Dependencies

Install these first, or the mod will not work:

denikson-BepInExPack_Valheim

File & checksum

Filename
Valheim10Compatibility-1.4.2.zip
File size
247.6 KiB