PerPlayerSettings
Per-player, server-forced mod settings for Valheim (BepInEx 5).
Tired of players losing their mod settings — like ZenCombat's dedicated dodge key reverting to default on every game restart? This mod moves ownership of chosen settings to the server: each player gets their own stored value (keyed by account, so it follows them across characters and machines), pushed on every join and re-asserted while they play.
Nothing is managed until you whitelist it, and no config file syncs over the network — values are applied to the target mod's live config entry, so changes take effect instantly, mid-session, no restart.
For players — full agency, two ways
- Your mod settings manager (F1): change any whitelisted setting during gameplay and it is captured automatically as your personal value.
- Chat:
/ppset Keyboard Dodge Button = Mouse2, or just/ppsetto see your current settings.
Setting a hotkey for a player
Takes effect live — no restart, no relog:
perplayer add playername ZenDragon.ZenCombat | Keyboard Dodge Button = CapsLock
Saved for playername: ZenDragon.ZenCombat | "Keyboard Dodge Button = CapsLock" [Dodge] and pushed to them.
The player can change it again anytime via F1 or /ppset; the value is stored
under their account and follows them across characters.
For admins
Run on the server console, or from your own game as admin (the command forwards itself to the server; output comes back to your screen):
perplayer whitelist ZenDragon.ZenCombat | Keyboard Dodge Button
perplayer add playername ZenDragon.ZenCombat | Keyboard Dodge Button = CapsLock
perplayer set playername "Keyboard Dodge Button" Mouse2
perplayer playername
perplayer list
perplayer mods
perplayer entries ZenDragon.ZenCombat dodge
perplayer remove ZenDragon.ZenCombat | Keyboard Dodge Button
perplayer reload
perplayer whitelist ZenDragon.ZenCombat | Keyboard Dodge Buttonregisters a setting for per-player management; appendadminto the end to make it admin-only. The section is found automatically.perplayer add playername ZenDragon.ZenCombat | Keyboard Dodge Button = CapsLockwhitelists and sets a player's value in one command.perplayer playernameshows a player's stored settings:playername (2649319149): ZenDragon.ZenCombat | "Keyboard Dodge Button = CapsLock" [Dodge]
Configuration (BepInEx/config/jg224.PerPlayerSettings.cfg)
AutoCapturePlayerChanges(default true, server-enforced): capture F1 changes as the player's personal value. False = players must use/ppsetexplicitly.WatchdogSeconds(default 10): how often clients re-assert stored values.SyncedSettings: the whitelist. Empty by default — you choose exactly what gets managed. Editable by hand (thenperplayer reload) or via commands.DefaultSettings: optional starting values for players who never chose.
Per-player values are stored server-side in
BepInEx/config/jg224.PerPlayerSettings.players.json (.bak kept). Values are
validated against each setting's real type: booleans, numbers, enums, KeyCodes
and hotkey combos (V + LeftShift) are all supported.