Longhouse Core

v1.4.0·Updated 2026-09-22

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

About this mod Author’s original text

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

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
Longhouse_Core-1.4.0.zip
File size
106.0 KiB