ModPermChecker
Enables granular per-player mod permissions alongside AzuAntiCheat. Restrict specific mods to specific SteamIDs.
About this mod Author’s original text
ModPermChecker
ModPermChecker is a lightweight server/client verification mod for Valheim. It allows server administrators to enforce granular, per-player mod access control.
Designed to work seamlessly with AzuAntiCheat (AAC), it solves the limitation where AAC can only distinguish between Admins and regular players.
🚀 Features
- Granular Mod Control: Allow specific client-side mods (e.g., building tools, QoL mods) only for designated SteamIDs.
- Auto Disconnect / Kick: Instantly kicks unauthorized players attempting to join with restricted mods.
- AAC Greylist Integration: Works hand-in-hand with AzuAntiCheat without triggering false bans.
- Easy JSON Configuration: Simple, human-readable configuration file.
🛠️ How It Works (with AzuAntiCheat)
- AzuAntiCheat Configuration: Add restricted mods to AAC's Greylist (Optional Mods) so AAC validates the DLL hashes without blocking connections.
- AAC Whitelist: Add ModPermChecker.dll to AAC's Whitelist (Enforced Mods) so every player is required to install this mod.
- ModPermChecker Validation: When a player connects, ModPermChecker reports their loaded mod GUIDs to the server. The server verifies them against CustomModPermissions.json and disconnects unauthorized players.
📦 Installation
Server Side
- Install BepInEx for Valheim.
- Place ModPermChecker.dll into BepInEx/plugins.
- Start the server once to generate the default configuration file: BepInEx/config/CustomModPermissions.json.
- Configure permissions in the JSON file.
Client Side (Players)
- Place ModPermChecker.dll into BepInEx/plugins/ (or install / r2modman).
⚙️ Configuration (CustomModPermissions.json)
The config file is located at BepInEx/config/CustomModPermissions.json.
{
"SpecialMods": [
"com.author.infinityhammer",
"com.author.worldeditcommands"
],
"Permissions": [
{
"SteamID": "76561198012345678",
"AllowedMods": [
"com.author.infinityhammer",
"com.author.worldeditcommands"
]
},
{
"SteamID": "76561198087654321",
"AllowedMods": [
"com.author.infinityhammer"
]
}
]
}
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: