Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
CharactersVault
Client + server mod. Server is authoritative source for all character data. Prevents offline item farming. Requires mod on both server and client.
| Last updated | 15 hours ago |
| Total downloads | 5 |
| Total rating | 1 |
| Categories | Mods Server-side Client-side Utility AI Generated |
| Dependency string | BigAI-CharactersVault-2.3.0 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2333README
CharactersVault
Prevents players from smuggling items or XP onto your server. The server stores each player's character file and pushes it to them on every join — anything gained offline is discarded.
⚠️ Required on Both Server AND Client
Both the dedicated server and all connecting clients must have this mod installed. Players without the mod will be kicked on connection.
What It Does
| Feature | Description |
|---|---|
| Server-Authoritative Character | Your character file lives on the server. On every join, the server pushes its copy to the client — offline item farming is impossible. |
| Blank Slate on First Join | New players start with nothing. The server is the only origin of character data from day one. |
| Character Lock | Each Steam ID is bound to one character name. Swapping to a different character results in a kick. |
| Anti-Cheat (ZDO Check) | After spawning in-world, the server verifies your live inventory/skills match the last saved snapshot. Memory editing is detected and results in a kick. |
| Periodic Sync | Your character file is automatically synced to the server every 5 minutes (configurable). |
| Admin Commands | Full in-game and file-based admin control over all player data. |
Installation
Server
- Install BepInExPack_Valheim on your server.
- Drop
CharactersVault.dllintoBepInEx/plugins/CharactersVault/. - Start the server — config and data files are created automatically.
Client
- Install BepInExPack_Valheim on Valheim.
- Drop
CharactersVault.dllintoBepInEx/plugins/CharactersVault/. - Launch the game — no configuration needed on the client side.
r2modman users: Install on both profiles (server and client) and it will handle the rest.
Upgrading from CharacterVault
Remove the old CharacterVault.dll from the server and every client before installing CharactersVault.dll. The existing CharacterVault.cfg configuration and vault data remain compatible.
Configuration (Server)
Edit BepInEx/config/CharacterVault.cfg on the server. This compatibility filename is retained so existing configurations continue working:
| Setting | Default | Description |
|---|---|---|
EnforceCharacterBinding |
true |
One character per Steam ID |
EnforceInventorySnapshot |
true |
ZDO inventory check on join |
EnforceSkillSnapshot |
true |
ZDO skills check on join |
ProfileSyncTimeoutSeconds |
15.0 |
Seconds client waits for server profile before disconnecting |
AutoSaveIntervalMinutes |
5.0 |
How often client syncs character to server |
VerboseLogging |
false |
Extra debug output |
Admin Commands
Run these in-game chat (must be in adminlist.txt):
| Command | Effect |
|---|---|
/sc allow [steamId] |
One-time override (bypass ZDO mismatch) |
/sc deny [steamId] |
Revoke a pending override |
/sc remove [steamId] |
Clear character binding (allows re-registration) |
/sc wipe [steamId] |
Full reset — delete all server data, blank character next join |
/sc list |
Show all character bindings |
/sc status [steamId] |
Show binding + snapshot info |
/sc help |
List all commands |
Known Limitations
- Valheim game updates may change internal data formats, causing false-positive ZDO mismatches for all players after the update. Use
/sc allowon each player once to re-baseline them. - P2P hosted games: The host player bypasses the join flow and won't be checked. Use a dedicated server for full enforcement.