Source-checkedAdmin & protection

FiresSteamworksPatcher

by VerdantsAscent · for Valheim

BepInEx preloader patcher for FiresGhettoNetworking: adds the missing Steamworks recv-buffer enum members and raises the ZDOMan.SendZDOs queue cap so FGN's tuning reaches its full ceiling. Runs on servers and clients wherever FGN is installed.

4.8KDownloads
35d agoLast updated
BepInExLoaders
ThunderstoreSource

About FiresSteamworksPatcher

From Thunderstore

BepInEx preloader patcher for FiresGhettoNetworking: adds the missing Steamworks recv-buffer enum members and raises the ZDOMan.SendZDOs queue cap so FGN's tuning reaches its full ceiling. Runs on servers and clients wherever FGN is installed.

FiresSteamworksPatcher

Updated for Valheim 1.0.

BepInEx preloader patcher that makes two surgical changes to Valheim's bundled assemblies, so FiresGhettoNetworking can use the Steam networking knobs and ZDO queue sizes it ships configs for. Install it wherever FGN runs — the dedicated server and every client.

> FiresGhettoNetworking is required, but not listed as a dependency. Earlier versions of this package listed > FGN as a dependency, which pinned a specific FGN version: every FGN update meant a new patcher release, and an > outdated pin could pull in an old FGN that no longer works on the current game. The dependency was removed so the > patcher never has to change when FGN does. You still need FGN installed for this patcher to do anything - > without it the patcher writes one log line and patches nothing.

This package only does anything when both of these are true on the machine:

  1. FiresGhettoNetworking is installed (a *GhettoNetwork*.dll is present anywhere under BepInEx/plugins/).
  2. BepInEx loads the patcher at preload (i.e. the DLL is in BepInEx/patchers/).

If FGN isn't present, the patcher writes a single log line and touches nothing — it has no effect of its own and no config file to tune.

> Need help, found a bug, want a feature? https://discord.gg/H9uKGcAujs


What it patches

| Target | What it does | |--------|--------------| | Steamworks.ESteamNetworkingConfigValue (in com.rlabrecque.steamworks.net.dll) | Adds four missing enum literals — k_ESteamNetworkingConfig_RecvBufferSize (47), RecvBufferMessages (48), RecvMaxMessageSize (49), RecvMaxSegmentsPerPacket (50). Valheim ships an older Steamworks SDK that doesn't expose these; without them, FGN's recv-buffer config knobs would throw MissingFieldException when it looks them up via reflection. | | ZDOMan.SendZDOs (in assembly_valheim.dll) | Locates the outbound send-queue cap constant (10240 bytes in vanilla) near a GetSendQueueSize call and rewrites it to 102400 (10×). FGN's per-peer send-rate tiers can configure Steam to push far past vanilla rates; the 10 KB queue caps that ceiling regardless of what Steam will accept. This bump lets the queue actually hold a frame of high-tier traffic. |

Both edits are done via Cecil at preload time — BEFORE Harmony exists, BEFORE any plugin Awakes. There's no Harmony-equivalent for either patch:

  • The Steamworks enum members are missing from the types Valheim ships, so no Harmony patch could surface them — you can't __instance.SomeField = … if the field doesn't exist in the loaded assembly.
  • The ZDO queue cap is a const-int load (ldc.i4) inside an IL branch. Harmony can transpile that, but the transpiler IL search and re-emit is heavier than rewriting one constant at preload.

Where it helps — server and client

Earlier builds gated this patcher to dedicated servers only. As of 1.1.0 it runs anywhere FGN is installed, because both edits pull their weight on the client too:

  • Dedicated server — the heavy outbound sender: it pushes ZDO updates to every peer each tick and configures a Steam socket per connection. The recv-buffer enums size its accept-from-peer receive buffers, and the SendZDOs queue cap raises its outbound ceiling during initial-sync floods.
  • Client — a client receiving a high-throughput server (FGN's HyperBoost or high AutoTune tiers push well past vanilla rates) needs matching receive headroom or it bottlenecks on ingest. The recv-buffer enums are what let FGN enlarge the client's receive buffers to keep up. The SendZDOs queue cap is a smaller win client-side — a client sends comparatively little — but it's harmless and applies in the cases where a client does own and push more.

Without this patcher, FGN still runs: its recv-buffer settings simply cap at Steam's defaults instead of erroring. The patcher is what unlocks the full receive ceiling on both ends.

FGN gate

The patcher scans BepInEx/plugins/ recursively for any DLL whose name matches *GhettoNetwork*.dll. If nothing matches:

  1. TargetDLLs returns an empty list, so BepInEx never loads Cecil for Steamworks / assembly_valheim.
  2. Defensively, Patch() also short-circuits if it's somehow called anyway.
  3. A single log line is written: FiresGhettoNetworking not detected … will not patch any assemblies.

This gate exists because the enum additions are inert without FGN reading them, and the queue-cap raise is small on its own — the win comes from pairing both with FGN's send-rate tiers. Shipping the patcher to a non-FGN install would be a no-op at best, so the gate keeps it from quietly altering other networking mods' headroom.

The gate is evaluated once per process and cached — one Directory.GetFiles(... AllDirectories) at startup, then nothing.


Installation

Install on every machine running FGN — the dedicated server and each client:

  1. Install BepInEx — the BepInExPack_Valheim on Thunderstore is the standard one.
  2. Install FiresGhettoNetworking yourself — mod managers will not add it for you, because it is deliberately not a listed dependency, and this patcher does nothing without it.
  3. Install this package. The patchers/ folder from the zip drops into BepInEx/ so the DLL lands at BepInEx/patchers/<author>-FiresSteamworksPatcher/patchers/FiresSteamworksPatcher.dll. r2modman / Thunderstore Mod Manager handle this automatically.
  4. Restart the game / server.

Preloader patchers have no config file — there's nothing to tune. Either FGN is present and the two patches land, or it isn't and the patcher idles.

Where to install

Read the full description on Thunderstore →

Highlights

From source data

Loaders

Runs on BepInEx.

Footprint

Rated a light load on a server.

Dependencies

Needs 2 other projects installed alongside it.

FiresSteamworksPatcher 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
Required 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.1.2, released 2026-09-30

Game versions by loader

LoaderGame versionsNewest
BepInEx

From 4 recorded builds of FiresSteamworksPatcher.

Recent builds

BuildReleasedGame versionsLoaders
1.1.22026-09-30n/aBepInEx
1.1.12026-06-25n/aBepInEx
1.1.02026-06-23n/aBepInEx
1.0.02026-05-16n/aBepInEx

Dependencies

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

Run FiresSteamworksPatcher 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 “Admin”

Admin & protection

Permissions, moderation, anti-cheat and land protection for the people running the server.

Runs on your server

From source side support

Thunderstore lists FiresSteamworksPatcher as required on the server. Check its Thunderstore page to see whether players need it too.

Compatibility

Game
Valheim
Loaders
BepInEx
Runs on
Serverrequired on the server
Requires
One-click install needs a BepInEx server. 2 other projects installed alongside it.

Verified at the source

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

FiresSteamworksPatcher, answered

Generated from the mod’s own source data.

Do my players need to install FiresSteamworksPatcher?

Thunderstore lists FiresSteamworksPatcher as required on the server. Check its Thunderstore page to see whether players need it too.

Which loaders does it support?

BepInEx.

Is it free?

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

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