CatosAntiCheat
Strict server/client mod-list enforcement with server-only, extra, and admin whitelists.
About this mod Author’s original text
CatosAntiCheat
Strict mod-list enforcement for Valheim servers.
CatosAntiCheat checks every connecting player against the server's installed BepInEx plugins. Players with missing server mods, unauthorized extra mods, or incompatible versions are rejected before they can join.
This is mod-profile enforcement, not undefeatable anti-cheat. A modified client can potentially fake its reported plugin list; CatosAntiCheat is intended to keep honest clients on the same approved profile.
Features
- Requires players to have the server's required mods.
- Lets administrators mark server-side plugins that clients do not need.
- Rejects unauthorized client-side mods.
- Supports a shared whitelist for approved client-only quality-of-life mods.
- Supports an admin-only whitelist for staff tools.
- Allows server owners to choose exact, minimum-version, or GUID-only version checks.
- Optionally posts kick notifications to Discord.
- Reloads whitelist files automatically when they are edited.
- Shows the player a readable rejection reason in chat when the connection supports it.
- Includes an AuditOnly mode for safely testing a server profile before enforcing kicks.
- Retries a timed-out handshake once by default for slow-loading clients.
Installation
Install CatosAntiCheat through Mod Manager or r2modman.
Dedicated server administrators
- Install CatosAntiCheat on the dedicated server profile.
- Install the same profile and CatosAntiCheat on every player's client.
- Start the server once to generate its configuration and whitelist files.
- Make sure the server's required mods are also installed on every player's client.
CatosAntiCheat is a server-and-client mod. Players who do not have it installed cannot complete the mod-list handshake and will be kicked after the configured timeout.
The client and server must use the exact same CatosAntiCheat version. Updating only one side will cause the connection to be rejected, even if the general mod VersionPolicy allows newer client versions.
Players
Install the server's complete mod profile, including CatosAntiCheat. Do not add extra mods unless the server administrator has approved them in the server's whitelist.
Configuration files
After the first launch, files are created in BepInEx/config:
- com.catosvalheim.anticheat.cfg — main settings.
- CatosAntiCheat_ExtraWhitelist.txt — extra mods allowed for all players.
- CatosAntiCheat_AdminWhitelist.txt — extra mods allowed only for Valheim admins.
- CatosAntiCheat_ServerOnly.txt — server plugins that clients do not need to install.
Important settings in com.catosvalheim.anticheat.cfg include:
| Setting | Default | Purpose |
|---|---:|---|
| EnforcementMode | Enforce | Enforce kicks mismatches. AuditOnly logs them but allows connections. |
| KickTimeoutSeconds | 15 | Time to wait for a mod-list reply. |
| HandshakeRetries | 1 | Additional requests after a timeout. Set to 0 to disable retries. |
| SendKickMessages | true | Sends a readable reason to the player's chat before disconnecting. |
| KickMessagePrefix | CatosAntiCheat | Prefix for player-facing rejection messages. |
| LogAcceptedConnections | false | Logs every successfully validated player when enabled. |
| MaxDisplayedProblems | 6 | Maximum mismatch reasons shown in logs, Discord, and chat. |
The settings are grouped in the generated config under 1 - General, 2 - Strictness, 3 - Feedback, and the existing 3 - Discord section.
AuditOnly mode
Set EnforcementMode = AuditOnly while building or debugging a server mod profile. CatosAntiCheat will still perform the complete validation and log what it would reject, but it will not disconnect players, send kick chat messages, or post kick webhooks. Return it to Enforce when the profile is ready.
Version policy
The default ClientAtLeastServer policy allows a client version equal to or newer than the server version. Available policies are:
| Policy | Behavior |
|---|---|
| Exact | Client and server versions m
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- 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.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- 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.
Install these first, or the mod will not work: