
koumodgp
A pure anti-cheat mod that protects your server from 3rd party software/cheats(Tooler, Wand, WeMod, FlingTrainer, CheatEngine, etc) and exploits(Animation-cancelling, printseeds command, Glitching outside of dungeons).koumodgp
A server integrity, anticheat and exploit-prevention plugin for dedicated Valheim servers.
koumodgp keeps a server's players on the exact mod set the admin expects, catches cheaters, and
blocks common exploits. 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.
Exploit protection — 3 exploits blocked (all on by default)
These are the headline additions. Each is enabled out of the box and enforced across all clients:
- Animation-cancelling — binding an emote to the attack key to interrupt a swing and attack faster. koumodgp refuses emotes while you're mid-swing, so attacks play at normal speed.
- Dungeon escape — building a log inside dungeon to glich outside allowing to glide/fly from top of the dungeon. koumodgp blocks building anything except the campfire inside dungeons.
- World-seed leak — the
printseedsconsole command handing normal players the world seed (used to look up bases/dungeons on seed-map sites). koumodgp disables the command for players.
What else it does (anti-cheat)
- 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 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 a list of known cheat tools (WeMod, Cheat Engine, trainers — shipped active by default).
- Exclusive characters — kicks characters that have played on other worlds, enforcing fresh, server-only characters (on by default).
Admins (on the server's adminlist.txt) are fully exempt and never checked or logged.
Install
- Put
koumodgp.dllinBepInEx/plugins/on the server and on every client. - 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.
- Configure it (below), then
kougp reloadin 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 qol mods like camera build).
Any mod a client runs that is not in either folder → the client is kicked.
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.
Shipped active by default:
wemod
cheatengine
trainer
wand
Rules:
- One signature per line, no
#in front (lines starting with#are comments). - Matching is a contiguous substring —
trainermatches "Valheim … 21 Trainer"; butvalheim trainerwould NOT match that title because the words aren't adjacent. - Use distinctive fragments. Avoid single broad words that could match innocent programs.
Step 3 — 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 the exact kick reason (type + detail) plus
the player name and SteamID, and lifecycle/admin events. All timestamps show in each viewer's
own local timezone automatically. 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).
Recommended: keep InjectedAssembly = Flag
Under [Policy] in the cfg, leave InjectedAssembly = Flag (the default). In-memory
assemblies have many legitimate causes (mods' embedded dependencies, runtime-generated code), so
this logs them for your review instead of auto-kicking — you get a Discord/audit note naming
the mod or DLL and can ban manually if it's actually a cheat. Real injected tools that patch the
game are still kicked automatically by the foreign-Harmony check regardless of this setting.
Exploit #1 — Block animation-cancelling (on by default)
Valheim attacks recover on an animation timer. The exploit binds an emote to the attack key —
pressing it interrupts the swing so the stab lands faster than a legit player can manage
("animation cancelling" / emote-cancel). koumodgp refuses emotes while you're attacking, so
attacks always play at their normal speed. Chat /cheers and normal keybound emotes still work
outside of combat. In [Combat]:
PreventAnimationCancel = true # master toggle (default true)
AnimCancelRecoverySeconds = 0.75 # how long after a swing emotes stay blocked (default 0.75)
Exploit #2 — Block dungeon-escape building (on by default)
Players can build logs inside dungeon to glitch outside of dungeon, this allows them to fly/glide from a very high place. koumodgp
blocks building everything except the campfire inside dungeons, so there's nothing to climb
out on. In [Dungeon]:
RestrictDungeonBuilding = true # master toggle (default true)
DungeonAllowedPieces = fire_pit # comma-separated prefab names allowed inside dungeons
The build ghost turns red and shows the normal "can't build in dungeon" message. Add prefab names
to DungeonAllowedPieces if you want to permit more pieces inside dungeons.
Exploit #3 — Block the world-seed leak (on by default)
The vanilla printseeds console command hands any player the world seed — which can be used on
seed-map sites to locate bases, bosses and dungeons. koumodgp disables printseeds for player
clients (the server console can still use it). In [General]:
BlockPrintSeed = true # default true
Exclusive characters (on by default)
koumodgp checks whether a joining character has played on other worlds; if so, it kicks — enforcing fresh, server-only characters and blocking imported/outside progress. Honest caveat that once a player used his character on other world, the character can no longer be used in server unless the feature is disabled.
[Character]
ExclusiveCharacter = true # set false to allow imported characters
[Policy]
ForeignCharacter = Kick # action when a non-exclusive character joins
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 listall every plugin loaded on the server (guid = version)
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
- Cheat detections kick by default; bans are a manual admin action, but can be configured on the server to auto-ban.
- Recommended to keep
InjectedAssembly = Flagto avoid false positives. - The three exploit blocks are server-controlled and pushed to every client, so players can't disable them locally.
- I made this anti-cheat because of people I met who knows a lot of exploits/cheats. Almost all of cheats they use are blocked by this mod.
Support
Discord: jjqqwws

