Ajneok-ModPermChecker icon

ModPermChecker

Enables granular per-player mod permissions alongside AzuAntiCheat. Restrict specific mods to specific SteamIDs.

Last updated 15 hours ago
Total downloads 6
Total rating 0 
Categories
Dependency string Ajneok-ModPermChecker-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202

README

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)

  1. AzuAntiCheat Configuration: Add restricted mods to AAC's Greylist (Optional Mods) so AAC validates the DLL hashes without blocking connections.
  2. AAC Whitelist: Add ModPermChecker.dll to AAC's Whitelist (Enforced Mods) so every player is required to install this mod.
  3. 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

  1. Install BepInEx for Valheim.
  2. Place ModPermChecker.dll into BepInEx/plugins/.
  3. Start the server once to generate the default configuration file: BepInEx/config/CustomModPermissions.json.
  4. Configure permissions in the JSON file.

Client Side (Players)

  1. Place ModPermChecker.dll into BepInEx/plugins/ (or install via Thunderstore / 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"
      ]
    }
  ]
}