Valheim
Install

Details

Last Updated
First Uploaded
Downloads
336
Likes
0
Size
97KB
Dependency string
Kou-koumodgp-0.3.0
Dependants
ADDatHost Valheim hosting
30% off!

koumodgp

A server integrity and mod-compatibility plugin for dedicated Valheim servers.

koumodgp keeps a server's players on the exact mod set the admin expects and helps admins spot tampering. It is installed and configured by the server owner and is meant for legitimate server administration. The same koumodgp.dll runs on the server and on clients — it detects its role at runtime (like AzuAntiCheat / ServerSync-style plugins), so there is only one file to distribute.


What it does

  • Mod whitelist — every client reports its loaded BepInEx plugins; the server compares them to the admin's list and kicks mismatches (missing, extra, or wrong-version mods).
  • Integrity check — detects code from unauthorized third-party injectors that patch the game at runtime (the usual way cheats are injected into a modded client).
  • State audit — checks a few well-known game flags (god mode, fly, ghost, free build) that external trainers toggle. These are never set for a normal player.
  • Program check (Windows clients) — matches running program names / window titles against an admin-provided list of known cheat tools (e.g. WeMod, Cheat Engine, trainers).

Admins (on the server's adminlist.txt) are fully exempt and never checked or logged.


Install

  1. Put koumodgp.dll in BepInEx/plugins/ on the server and on every client.
  2. Start the server once. It creates:
    • BepInEx/config/koumodgp.cfg — settings.
    • BepInEx/config/koumodgp/required/ — folder for required mods.
    • BepInEx/config/koumodgp/allowed/ — folder for optional mods.
    • BepInEx/config/koumodgp/signatures.txt — cheat-tool signatures.
  3. Configure it (below), then kougp reload in the console — or restart.

Step 1 — Set your allowed mods (drop-a-DLL)

You do not edit text for mods. Just drop the mod .dll files (or whole plugin folders) into the folders and koumodgp reads each one's id and version automatically:

  • BepInEx/config/koumodgp/required/ — every client MUST run these exact mods + versions. Put every client-side mod your modpack uses here.
  • BepInEx/config/koumodgp/allowed/ — permitted if a client has them, but not required (e.g. optional cosmetic mods some players use).

Any mod a client runs that is not in either folder → the client is kicked.

Tip: the easiest setup is to copy your client modpack's plugins folder straight into required/. Server-only mods (that clients don't have) should NOT go in required/, or clients will be kicked for "missing" them.


Step 2 — Detect external cheats (signatures)

To catch standalone cheat programs (things that run as their own app, not as a game mod), add their names to BepInEx/config/koumodgp/signatures.txt — one per line. A signature is a lowercase text fragment matched against running process names and window titles.

You should add these common ones to detect the most-used external cheats:

wemod
cheatengine
trainer

Rules:

  • One signature per line, no # in front (lines starting with # are comments).
  • Matching is a contiguous substringtrainer matches "Valheim … 21 Trainer"; but valheim trainer would NOT match that title because the words aren't adjacent.
  • Use distinctive fragments. Avoid single broad words that could match innocent programs.
  • A signature match is a kick on its own — even if the tool is open for another game.

Step 3 — Auto-ban detected cheaters (optional, off by default)

By default koumodgp only kicks a detected cheater. If you want detections to result in a ban instead, set this in BepInEx/config/koumodgp.cfg under [General]:

AutoBanDetections = true

When on, any client caught actively cheating — an internal cheat (injected assembly, unauthorized runtime patch, or an impossible god/fly/ghost/free-build state) or an external one (a matched cheat-program signature) — is added to the server's bannedlist.txt and disconnected. Compliance-only problems (wrong/missing mods, no companion plugin, dropped heartbeats) are never auto-banned — those always stay a kick so honest players who just have the wrong modpack can fix it and rejoin.

Default is false (kick only). Ban by admin command (kougp ban) still works regardless.


Step 4 — Discord logging (optional)

In BepInEx/config/koumodgp.cfg under [Logging]:

DiscordWebhookUrl = https://discord.com/api/webhooks/xxxx/yyyy

Leave empty to disable. When set, koumodgp posts:

  • Mod problems — detailed (which mod / version is wrong), to help players fix their install.
  • Cheat detections — generic ("Player using external/internal cheat"), so cheaters don't learn what tripped them.
  • Server start/stop and admin actions.

Full detail of every detection is always written to BepInEx/config/koumodgp/violations.log.

After changing the webhook URL you must restart the server (URL is read at startup).


Admin commands

Works both in the dedicated-server console and in-game (F5 console) for admins. In-game commands are verified server-side, so only real admins can use them.

kougp status                     connected players + verification state
kougp list                       current required / optional mods + signatures
kougp reload                     reload mods + signatures and push to clients (no restart)
kougp allow add <guid> [ver]     add a required mod by id (also: remove)
kougp sig add <text>             add a cheat-tool signature (also: remove)
kougp kick <name>                kick a player
kougp ban <name>                 ban a player (bannedlist.txt)

kougp reload refreshes the mod folders and signatures live — no restart needed. (Only the .cfg settings, like the webhook URL, require a restart.)


Notes

  • Detections kick by default; set AutoBanDetections = true to ban cheat detections instead (see Step 3). Bans are also available as a manual admin action (kougp ban).
  • The server may run on Linux; the client-side program check is Windows-only.
  • Like any client-reported system, a determined attacker who modifies the client can attempt to evade detection. koumodgp raises the effort required and layers several independent checks; admin status and all decisions are always enforced server-side.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.