FormID Database Manager is a WinUI desktop application that provides a robust and user-friendly interface for creating SQLite databases that store the FormIDs and their associated EditorID or Name value (if any) from Bethesda game plugins.
- The Elder Scrolls IV: Oblivion
- The Elder Scrolls V: Skyrim (LE, SE, SE GOG, VR)
- Enderal (LE, SE)
- Fallout 4 (including VR)
- Starfield
- Automatic game detection from directory structure
- Plugin list loading with filtering and selection
- Batch processing of plugins into a SQLite database
- Import from pipe-delimited FormID text files (
plugin|formid|entry) - Update mode to replace existing plugin entries
- Progress reporting with cancellation support
- C# / .NET 10.0
- WinUI 3 / Windows App SDK: Windows desktop UI framework
- CommunityToolkit.Mvvm: MVVM source generators and observable state
- Mutagen: Bethesda plugin parsing library
- Microsoft.Data.Sqlite: SQLite database access
- xUnit + Moq: Testing framework
Phase 0 was recorded on June 9, 2026 before extracting the UI-neutral core boundary.
- Branch/checkpoint:
winui - Worktree state: existing uncommitted OpenSpec/migration-plan changes were present before Phase 1 extraction work began.
- Baseline build:
dotnet build "FormID Database Manager.slnx"succeeded with0warnings and0errors. - Baseline tests:
dotnet test "FormID Database Manager.Tests"passed with272passed and11skipped. - WinUI template status:
dotnet new list winuiexposes the C#WinUI 3 App,WinUI 3 Blazor App, andWinUI 3 Class Librarytemplates. - Target deployment model: packaged MSIX is selected for the staged WinUI migration. The WinUI project is now the supported desktop shell.
- .NET SDK 10.0 or later
- Windows 10/11 for default solution and WinUI desktop shell builds
Default solution builds are intentionally Windows-only because the active desktop shell targets WinUI and the Windows App SDK. Linux/macOS solution builds are unsupported.
dotnet build "FormID Database Manager.slnx"Build only the WinUI desktop shell:
dotnet build "FormID Database Manager.WinUI\FormID Database Manager.WinUI.csproj" -p:Platform=x64Debug CLI runs pass unpackaged, Windows App SDK self-contained properties so the app can launch directly from dotnet run.
dotnet run --project "FormID Database Manager.WinUI" -p:Platform=x64 -p:WindowsPackageType=None -p:WindowsAppSDKSelfContained=truedotnet test "FormID Database Manager.Tests"pwsh ./scripts/run-coverage.ps1This generates:
- Cobertura XML:
coverage/coverage.cobertura.xml - JSON:
coverage/coverage.json - HTML report:
coverage/report/index.html
Optional (open the HTML report automatically):
pwsh ./scripts/run-coverage.ps1 -OpenReportThe WinUI project keeps packaged MSIX support enabled by default. Use an explicit publish profile for each release lane.
Packaged MSIX, x64:
dotnet build "FormID Database Manager.WinUI\FormID Database Manager.WinUI.csproj" -c Release -p:Platform=x64 -p:PublishProfile=win-x64-msix.pubxmlUnpackaged framework-dependent, x64:
dotnet publish "FormID Database Manager.WinUI\FormID Database Manager.WinUI.csproj" -c Release -p:Platform=x64 -p:PublishProfile=win-x64-unpackaged-framework-dependent.pubxmlUnpackaged self-contained, x64:
dotnet publish "FormID Database Manager.WinUI\FormID Database Manager.WinUI.csproj" -c Release -p:Platform=x64 -p:PublishProfile=win-x64-unpackaged-self-contained.pubxmlRuntime and distribution notes:
- Packaged MSIX is the Phase 9 packaged lane for direct MSIX verification. Store submission, production certificate selection, AppInstaller feeds, and automatic update flow are not configured yet.
- The packaged profile does not set
WindowsPackageType=None; the base project remains MSIX-capable. - The debug run command sets
WindowsPackageType=NoneandWindowsAppSDKSelfContained=trueexplicitly without changing the base project default. - The unpackaged framework-dependent publish profile sets
WindowsPackageType=None; target machines must have the matching .NET desktop runtime and Windows App SDK runtime installed. - The unpackaged self-contained publish profile sets
WindowsPackageType=NoneandWindowsAppSDKSelfContained=true. Its output carries the Windows App SDK runtime with the app and is larger than the framework-dependent output. - Single-file unpackaged output is not selected for Phase 9 because first-launch extraction behavior still needs clean-machine verification.
- When no database path is selected, generated databases are written under
%LOCALAPPDATA%\FormID Database Manager\Databases.
FormID Database Manager.Core/: UI-neutral application coreModels/— Data modelsViewModels/— MVVM view modelsServices/— Business logic, dispatcher/file-dialog abstractions, database, plugin processing, and game detection
FormID Database Manager.WinUI/: Supported WinUI desktop application shellApp.xaml/App.xaml.cs— WinUI application startup and resourcesMainWindow.xaml/MainWindow.xaml.cs— Main UI window and workflow event handlersServices/— WinUI dispatcher and picker implementations
FormID Database Manager.Tests/: Unit, integration, UI, and performance testsFormID Database Manager.TestUtilities/: Shared test fixtures, mocks, and builders
Contributions are welcome! Please follow the steps below to contribute:
- Fork the repository.
- Create your branch (
git checkout -b feature/new-feature). - Commit your changes (
git commit -m "Add new feature"). - Push to the branch (
git push origin feature/new-feature). - Open a pull request.
This project is licensed under the GPL-3.0 License. Feel free to use, modify, and distribute the code as needed.
- Windows App SDK for the WinUI desktop application framework.
- Mutagen for Bethesda plugin parsing.
For inquiries or support, please contact me at evildarkarchon@gmail.com.