Source-checkedLibraries & compatibility

Longhouse Core

by Ezomic · for Valheim

Shared plumbing for the Ezomic mods. Installed for you as a dependency.

1.1KDownloads
43d agoLast updated
BepInExLoaders
ThunderstoreSource

About Longhouse Core

From Thunderstore

Shared plumbing for the Ezomic mods. Installed for you as a dependency.

Longhouse Core

Shared library for the Ezomic Valheim mods. It handles the parts that only make sense once, per machine rather than per mod: checking that a client and a server are running the same mods, applying the host's settings while you are connected, and arbitrating extra player inventory rows between mods that each want some.

You normally get it as part of the Longhouse pack. It is a single DLL with no assets, built against Valheim 1.0.7, Unity 6000.0.75, BepInEx 5.4.23.5 and Harmony 2.9.

Features

  • Version check. Each Ezomic mod registers its guid, version and build id. When a client

connects, both ends exchange that list, and the server rejects a client whose list does not match. The reason is written to both logs and appended to the client's "Incompatible version" screen, which otherwise says nothing useful.

  • Host config. The server sends its settings for every registered mod, and the client

uses them for as long as it is connected. Nothing is written to the client's config file, and the client's own values come back on disconnect.

  • Shared inventory height. Mods claim a number of extra player inventory rows instead of

writing Inventory.m_height themselves. Core sums the claims and writes the field once, so two mods that both want rows get both, and it protects the contents of those rows during loads.

  • Server chat lines. A server can put a line in each player's chat window, under a name

of its own choosing. Vanilla cannot: its chat message names a connected player, and a server is not one. Crier uses it for chat written on the Longhouse site.

The first three can be turned off in the config file. The chat line has nothing to turn off: nothing sends it but a server running Crier.

This repository also carries shared/Prefabs.cs and shared/BiomeIndex.cs, which are source files mods link into their own projects. They are not part of the DLL. See For mod authors.

Installation

Install BepInEx 5.4.2350 first. These mods use the BepInEx 5 API and will not load on BepInEx 6.

A mod manager handles it if you install the Longhouse pack, which pins Core along with every other member. To install it on its own, drop EzomicCore.dll in BepInEx\plugins\Core\.

Install it on the dedicated server as well as on clients. The server is the only side that can actually refuse a connection, so a server without Core does not check anything, whatever its clients are running.

Core is an optional soft dependency for the individual mods. Each one checks whether Core is loaded and, if it is not, logs a line saying it is running standalone and carries on without the version check and the host config. The exception is Delve, which requires it outright.

Configuration

BepInEx\config\ezomic.valheim.core.cfg, all under a Multiplayer section.

| Key | Default | Effect | | --- | --- | --- | | EnforceVersions | true | Refuse a connection when the two ends disagree about which Ezomic mods are installed or about their versions. Turning it off does not make a mismatch safe, it makes it silent | | EnforceBuilds | true | Also refuse when both ends claim the same version but were built from different source. Turn this off if you build the mods yourself on more than one machine: the build id depends on source paths, so the same commit in a different folder produces a different id | | EnforceConfig | true | Apply the host's settings while connected. On a server this decides whether it sends them, on a client whether it accepts them |

Multiplayer

The mod list goes out in ZNet.OnNewConnection, before either side sends PeerInfo, so it has arrived by the time the check runs. Every disagreement is reported at once rather than one per reconnect attempt.

What gets compared, per registered mod: the version string, then the build id (the assembly's module version id, which the compiler derives from the compilation inputs), then a hash of the mod's data file if it declared one. A missing build id or data hash from an older Core on the far end is treated as unknown, not as a mismatch.

A mod registers as Everyone or HostOnly. Everyone means both ends need it at the same version. HostOnly means clients without it are let in, but a client that does have it is still checked against the host, in both directions. Skaft is HostOnly, for example: it is client-side hammer repair and the server neither gains nor loses by a client having it.

The client checks too, but only to write a readable log and put the detail on the refusal screen. There is one place a connection is actually closed, and it is on the server.

Config sync. Registering a mod syncs its whole config file, minus keybinds and minus anything the mod held back with Suite.Local. Values are swapped in memory on the client, the originals are kept, and they are restored when ZNet.Shutdown runs, which covers quitting to the menu, being kicked and the connection dropping. If ConfigurationManager is installed, an imposed entry is greyed out, and editing one anyway puts the host's value straight back.

Keybinds (KeyCode and KeyboardShortcut entries) are never imposed on a client unless the mod that owns them calls Suite.Sync on them explicitly.

A client can set EnforceConfig = false and keep its own settings. The version check is what the server enforces; the config sync is cooperative.

Inventory rows

Valheim 1.0 has its own inventory row feature, and it evicts anything below the row count it believes in. Core works with that rather than against it.

  • The grid is capped at 9 rows. That is vanilla's clamp in Player.SetInventorySize and

there is no way past it.

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 43d ago.

Longhouse Core 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 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.0, released 2026-09-22

Game versions by loader

LoaderGame versionsNewest
BepInEx

From 12 recorded builds of Longhouse Core.

Recent builds

BuildReleasedGame versionsLoaders
1.4.02026-09-22n/aBepInEx
1.3.02026-09-21n/aBepInEx
1.2.52026-09-19n/aBepInEx
1.2.42026-09-12n/aBepInEx
1.2.32026-09-11n/aBepInEx
1.2.22026-09-10n/aBepInEx

Dependencies

Declared by the newest build that lists any. Required ones are installed with it on one-click installs.

Run Longhouse Core 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 “Content”

Libraries & compatibility

Foundations and fixes other mods build on. Usually installed because something else needs it.

Compatibility

Game
Valheim
Loaders
BepInEx
Requires
One-click install needs a BepInEx server.

Verified at the source

  • ✓ThunderstoreOfficial listing, checked 2026-10-01Open ↗
  • ✓AuthorEzomic, as published on Thunderstore
  • ✓LicenseNot published by the sourceFree

Longhouse Core, answered

Generated from the mod’s own source data.

Which loaders does it support?

BepInEx.

Is it free?

Yes. Longhouse Core 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 Longhouse Core on a Valheim server.

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