ValheimPasswordManager
A client-side BepInEx mod that adds saved password selection and management to Valheim's vanilla server password dialog while keeping the original UI style.
模組介紹 作者原文
Valheim Password Manager
English
A BepInEx 5 + Harmony client-side mod for Valheim that enhances the vanilla password dialog shown when joining password-protected servers.
Source code repository
Features
- Keeps the original Valheim password dialog and submit flow intact
- Injects a dropdown button on the right side of the existing input field
- Shows a local password list in a drawer below the input field
- Clicking a saved password fills the original input field automatically
- Each saved password can be deleted individually
- Prompts the player with “Save this password?” when submitting a new password for the first time
- Stores passwords in a local JSON file and recreates the file safely if it becomes corrupted
- Requires no server-side installation
Localization
- The confirmation prompt follows the game's currently selected language.
- The current implementation covers the built-in language names visible in assembly_guiutils.dll.
- To avoid missing-glyph issues, the delete button no longer relies on an emoji and is instead drawn with plain UI shapes.
- Character compatibility risk should be low for languages already supported by the base game, because the prompt still uses Valheim's own fonts and localization pipeline.
- Password rows reuse the same font settings as the original input field. If a character cannot be displayed correctly in the vanilla input box, it may also be limited in the saved-password list. That would be a base-game font coverage issue rather than a mod-specific one.
Build
Option 1: build with the script
Run this from the repository root:.\build.ps1
Option 2: build manually with dotnet
$env:APPDATA = (Resolve-Path '.appdata').Path
$env:DOTNET_CLI_HOME = (Resolve-Path '.').Path
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1'
$env:NUGET_PACKAGES = Join-Path (Resolve-Path '.').Path '.nuget\packages'
dotnet build.\src\ValheimPasswordManager\ValheimPasswordManager.csproj -c Debug --configfile.\.appdata\NuGet\NuGet.Config
Output DLL:
- src\ValheimPasswordManager\bin\Debug\ValheimPasswordManager.dll
Installation
Copy the compiled DLL into the Valheim client:
- \BepInEx\plugins\ValheimPasswordManager\ValheimPasswordManager.dll
A dedicated subfolder is recommended:
- \BepInEx\plugins\ValheimPasswordManager\
JSON storage path
After running the mod, the saved password list is stored at:
- \BepInEx\config\JipZeonGit.Valheim.PasswordManager.json
If the file is corrupted, it is backed up automatically as:
- JipZeonGit.Valheim.PasswordManager.json.corrupt-timestamp.bak
Configuration file
After the mod runs once, it generates a BepInEx config file:
- \BepInEx\config\JipZeonGit.Valheim.PasswordManager.ScrollSpeed.cfg
Current UI option:
- UI.PasswordListScrollSpeed
Notes:
- default value: 160
- allowed range: 20 to 400
- larger values make the password list scroll faster with the mouse wheel
Development references
This repository does not commit the game/framework DLL payloads by default, but local compilation still depends on these reference folders:
- references\\BepInEx\\core
- references\\Valheim\\Managed
If you clone this repository on a new machine, prepare those DLLs in the local references folder first, following references/README.md, and then build the project.
GitHub repository guidance
Treat the GitHub repository as a source repository, not as a mirror of a local game installation.
Recommended to commit:
- src/
- docs/
- README.md
-.gitignore
- build.ps1
- NuGet.Config
Not recommended to commit:
- local game/framework reference copies under references/
- local upstream source mirrors under third_party/
- build outputs and caches such as bin, obj,.appdata,.dotnet, and.nuget/
- local JSON files, backup files, and log files created during testing
Why:
- references/Valheim/Managed contains assemblies copied from a local game installation and is not ideal to keep in a public source repository.
- third_party/ is reference
安裝與使用 安裝:BepInEx 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。 多人連線時,主機與所有用戶端需要安裝一致的模組。
下面這些內容需要先安裝,否則該模組不會生效: