About Valheim10Compatibility
From ThunderstoreLets 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 default, and a shield for item-name collisions.
⚒️ 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,SKIPPEDorBLOCKED. 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 load, every patch in it, not just that one.
That is far worse than the single unresolved call site the bridge was meant to fix.
So before injecting anything, the patcher scans your real BepInEx/plugins folder, reads every [HarmonyPatch] attribute in every Harmony plugin you have installed, and records which game methods are patched by name. Without the hook below, any bridge that would collide with one is refused outright — on the live server list below that blocks 10 bridges to protect 17 plugins, including ProceduralRoads and Venture LocationReset, both of which an earlier release of this very patcher broke by injecting ZoneSystem.SpawnZone(Vector2i, ...) on top of their by-name patches. 🩹
That protection was right, and it was also a ceiling: EffectList.Create was wanted by 11 plugins and stayed blocked because Infinity Hammer patches it by name — and still does. And vanilla itself creates the same ambiguity with no bridge in sight: 1.0 gave Inventory.Load, PieceTable.SetCategory, Attack.GetAttackEitr and fifteen other methods a second overload, so pre-1.0 plugins patching those by name die on plain 1.0.7.
🪝 The Harmony resolution hook
Every Harmony lookup — attribute patches, AccessTools.Method(...) in code, ___field injection — goes through four AccessTools entry points. The patcher installs MonoMod detours on all four from the preloader, before any plugin loads, and resolves the ambiguity the way the plugin author meant:
Highlights
From source dataLoaders
Runs on BepInEx.
Footprint
Rated a light load on a server.
Last update
Its author last shipped an update 32d ago.
Valheim10Compatibility on Nxeon
From our catalogue- One-click install
- Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
- Server side
- Optional on the server
- Server type needed
- BepInEx
- Server load
- light
- Smallest plan we suggest
- Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
- Latest build
- 1.4.2, released 2026-10-04
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| BepInEx |
From 4 recorded builds of Valheim10Compatibility.
Recent builds
| Build | Released | Game versions | Loaders |
|---|---|---|---|
| 1.4.2 | 2026-10-04 | n/a | BepInEx |
| 1.4.1 | 2026-09-16 | n/a | BepInEx |
| 1.4.0 | 2026-09-13 | n/a | BepInEx |
| 1.3.1 | 2026-09-12 | n/a | BepInEx |
Dependencies
- Required: BepInExPack Valheim
Declared by the newest build that lists any. Required ones are installed with it on one-click installs.
Run Valheim10Compatibility on a Valheim server
Pick a server or deploy a new one above; it is installed in one click.
What kind of mod it is
From the catalogQuality of life & UI
Small conveniences, tweaks and interface improvements players notice straight away.
Works on a server
From source side supportThunderstore lists server-side support for Valheim10Compatibility as optional: it can run on a server, but isn’t required there.
Compatibility
- Game
- Valheim
- Loaders
- BepInEx
- Runs on
- Serveroptional on the server
- Requires
- One-click install needs a BepInEx server.
Verified at the source
- ✓ThunderstoreOfficial listing, checked 2026-10-04Open ↗
- ✓AuthorWubarrk, as published on Thunderstore
- ✓LicenseNot published by the sourceFree




