Source-checkedQuality of life & UI

Valheim10Compatibility

by Wubarrk · for Valheim

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 default, and a shield for item-name collisions.

2.8KDownloads
32d agoLast updated
BepInExLoaders
ThunderstoreSource

About Valheim10Compatibility

From Thunderstore

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 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, SKIPPED or BLOCKED. A run against a build it does not fully match is loud, not quietly thin.

🪓 The Ritual of Installation

  1. 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.
  2. Install this package with your mod manager, or unzip it over your profile by hand.
  3. 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:

Read the full description on Thunderstore →

Highlights

From source data

Loaders

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

LoaderGame versionsNewest
BepInEx

From 4 recorded builds of Valheim10Compatibility.

Recent builds

BuildReleasedGame versionsLoaders
1.4.22026-10-04n/aBepInEx
1.4.12026-09-16n/aBepInEx
1.4.02026-09-13n/aBepInEx
1.3.12026-09-12n/aBepInEx

Dependencies

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 catalog
Listed on Thunderstore as “Tweaks”

Quality of life & UI

Small conveniences, tweaks and interface improvements players notice straight away.

Works on a server

From source side support

Thunderstore 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

Valheim10Compatibility, answered

Generated from the mod’s own source data.

Do my players need to install Valheim10Compatibility?

Thunderstore lists server-side support for Valheim10Compatibility as optional: it can run on a server, but isn’t required there.

Which loaders does it support?

BepInEx.

Is it free?

Yes. Valheim10Compatibility is free to download from Thunderstore.

How do I add it to my Nxeon server?

Use “Add to a server” on this page, or open NxLabs from your dashboard. We install it, restart your server and switch it on.

NxLabs

Run Valheim10Compatibility on a Valheim server.

Deploy in about a minute from $9.99 a month, then add Valheim10Compatibility in one click.