Releases: bobbycomet/Kalium
Release list
Backpatch restored (Skyrim SE/AE)
What was fixed and why
Backpatch is available again. It had been held back because downpatching alone was not enough after Bethesda’s 1.7.x update.
In 1.7.x, the format of ContentCatalog.txt changed. That file lives outside the game install (typically under Local AppData / the Proton prefix). The new format is incompatible with any version below 1.7.x (including 1.6.1170 and other 1.6.x targets): the older binary crashes on load when it reads the updated catalog.
What 1.2.1 does: on Apply (and auto/console apply), Kalium renames
ContentCatalog.txt → ContentCatalog.txt.bak.
- The
.bakkeeps the original file so nothing is deleted. - The live catalog is no longer read by the downpatched game, so the backpatch can complete and run successfully.
UI: ContentCatalog.txt field with Browse and Auto-detect (Proton prefixes, Local AppData, MO2 compatdata).
CLI/API: content_catalog= / require_content_catalog= on run_backpatch, plus disable_content_catalog() and find_content_catalog().
Without this rename, depot apply alone does not fix the crash. With it, backpatch to 1.6.x (and other pre-1.7 targets) works.
1.2.0 MO2 repair
Added
Repair MO2 (staged recovery, mod safe, save safe, tested on Skyrim SE/AE, backup is option for safety)
New capability to repair MO2 application files on an existing managed instance while optionally preserving instance (user) data. This does not create a new Steam shortcut, AppID, or Wine/Proton prefix — repair always targets the same install path and the same compatdata/<id>/pfx.
The feature is modeled as recovery of two separate state classes:
| Application state (replaced) | Instance state (optional backup / restore) |
|---|---|
| MO2 binaries, shipped plugins, runtime, helpers, USVFS | mods/, downloads/, profiles/, stylesheets/, overwrite/, ModOrganizer.ini |
Safety workflow
Backup → Confirm → Repair → Test → Restore
- Backup and Restore are explicit, user-triggered steps — never silent.
- Repair does not automatically restore instance data after reinstall.
- Users are expected to launch MO2 from Steam and verify the original problem is gone before restoring.
- Automated backup/restore is optional; fully manual backup/restore is supported.
Backup location rules
- Backups must live outside the MO2 install folder (enforced).
- Default suggestion: same drive, sibling folder, e.g.
…/Games/MO2→…/Games/MO2_backups/MO2_<timestamp>/ - User may browse to any other path.
GUI
- Settings → managed prefix → “Repair MO2” opens a dedicated staged dialog.
- Stages: backup, confirmation checkbox, repair, test guidance, restore.
- Per-folder selection (
mods,downloads,profiles,stylesheets,overwrite, ini). downloads/andoverwrite/are optional (off by default in the UI).- “Skip backup — repair application only” for users handling data themselves.
- Optional “remove backed-up folders after repair” so a clean MO2 can be tested before restore.
- Manual backup checklist available in the dialog.
CLI (kalium fix-mo2)
New staged subcommand (see wiki for full usage):
backup— copy selected instance data out and verifyrepair— replace application files onlyrestore— copy instance data back from a backup folderchecklist— print the manual backup checklist
New module
kalium/installers/fix_mo2.py— backup, application repair, restore, path helpers, checklist text.
Changed
- Settings managed-prefix actions include Repair MO2 alongside USVFS, VFS memory, LOOT, and vcrun2022.
- Repair-related messaging emphasizes same prefix / same path and that some mods may not survive a filesystem copy (re-download may be required).
- Large-list timing is called out (HDD / overhaul packs can take an hour or longer).
Notes / caveats
overwrite/may contain SKSE output, shader caches, and other generated VFS content — not only loose mod files.- Backup verification compares size/fingerprint; restore treats fingerprint mismatches as warnings (partial copies / picky mods) rather than always hard-failing the whole restore.
- After application repair, Kalium still re-applies USVFS 0.5.7.2, theme, VFS
max_memory, and custom-executable path normalization when those helpers succeed.
Files of interest
| Path | Role |
|---|---|
kalium/installers/fix_mo2.py |
Core backup / repair / restore |
kalium/main.py |
fix-mo2 CLI |
kalium/ui/main_window.py |
Repair MO2 dialog + Settings button |
| ''' |
Some fixes
Removed some hardcoded destinations I left in when testing
Removed Backpatch from the UI. The issue is the Backpatch worked, but Steam, does not like when Linux tries to down grade a game. This is a Steam, Proton issue, nothing I do will fix that, so it will stay experimental in CLI.
v1.1.1.3 Downpatcher fix
Fixed
- Skyrim SE targets now use full three-depot sets
All 1.6.x versions (1.6.1170, 1.6.1130, 1.6.640) previously only downloaded the exe depot (489833). They now download the complete set (disk + core + exe) so the resulting install matches the target version exactly.
Updated manifests
| Version | Depots |
|---|---|
| 1.6.1170 | 489831 / 8442952117333549665 489832 / 8042843504692938467 489833 / 1914580699073641964 |
| 1.6.1130 | 489831 / 3737743381894105176 489832 / 4341968404481569190 489833 / 2442187225363891157 |
| 1.6.640 | 489831 / 3660787314279169352 489832 / 2756691988703496654 489833 / 5291801952219815735 |
| 1.5.97 | Unchanged (was already correct) |
Improved
- More robust version matching
Accepts clean IDs (1.6.1170) as well as UI labels and slightly mangled strings (e.g.1.6.1170 Recommended for AE 1.6.x mods)). Prevents “unknown target” errors when the frontend passes the display label instead of the ID.
Notes
- 1.5.97 continues to use its existing full three-depot set.
- Behavior for other games (Fallout 4, Starfield, Cyberpunk 2077, Witcher 3) is unchanged.

v1.1.1.21 USVFS 0.5.7.2 patch
Improved reliability of USVFS 0.5.7.2 on recent Proton/Wine (especially GE-Proton 10.x and secondary-drive setups). The previous update fixed the Wine 10.20+ virtual folder duplication issue, but some users still needed a one-time vanilla game launch before MO2 would correctly overlay mods. This release hardens the USVFS integration and mount handling so the virtual filesystem attaches more consistently on first launch from a fresh or multi-library instance. Some game launches may take up to 3 minutes, do not close the game. Seeing the black screen as it loads is normal. Allow it to work.
USVFS crash fix
v1.1.1.2
Fixed
- USVFS 0.5.7.2 is no longer enabled by default during MO2 install.
Automatically updating to USVFS 0.5.7.2 could freeze games and lock the screen. That often looked like a compositor/Wayland problem and produced misleading warnings. The install wizard now leaves Update USVFS to 0.5.7.2 unchecked so stock MO2 USVFS is kept unless you opt in.
Changed
- MO2 install step 4: USVFS update checkbox defaults to off.
- Checkbox label/tooltip updated to mark the update as optional and note that it can cause issues on some systems.
- Fallback when the checkbox is missing also skips the USVFS update (safe default).
Notes
- You can still enable the USVFS 0.5.7.2 update manually in the installer if you need it (e.g., for virtual-folder duplication / slow boots on certain Wine/Proton 10.20+ setups).
- Existing MO2 instances are unchanged. To update or roll back USVFS later, use Settings → Update USVFS (or
kalium install-usvfs -p <mo2 path>). - CLI
setup-mo2still updates USVFS unless you pass--no-usvfs.
1.1.1.1 Beta fixes
The same fix as 1.1.1, but for existing MO2 instances. Back up files for safety.
1.1.1 Beta fixes
MO2 Game Selector & Detection Improvements
NOTE: This fix currently applies to new MO2 instances. A migration/fix for existing instances is planned for a future update.
If you know what you are doing, you can manually move your existing mods to the new instance, just as you would when migrating an MO2 instance on Windows. Make sure you understand how your MO2 instance is configured before doing this manually.
Improved
-
Game selector now defaults to blank for improved portability and to prevent Kalium from making an implicit game selection.
-
The selector displays known-game templates by default, but the user must explicitly select a game or browse to a game folder before continuing.
-
“Skip for now” is now available when appropriate instead of being blocked by automatic game detection.
-
The game selector now preserves the full Steam display name, including names such as:
The Elder Scrolls V: Skyrim Special EditionThe Elder Scrolls V: Skyrim
-
The full Steam display name is used for the MO2
gameName=value so MO2 plugins can correctly identify the selected game. -
gamePath=continues to use the actual folder selected or browsed to by the user. The selector does not attempt to infer or alter the physical game path. -
Game selection is now treated as metadata/information, while the selected filesystem path remains authoritative for the actual game location.
-
Duplicate game entries are prevented through a new
seen_namesguard.
Fixed
- Fixed the “Game plugin does not exist” / “Instance does not exist” loop when using Switch to instance.
- Fixed portable MO2 instances failing to bind correctly on their first launch.
- Portable MO2 instances now preserve their existing
Z:paths during instance binding instead of having their paths incorrectly rewritten. - Fixed automatic game detection forcing an unintended blank selector.
- Fixed “Skip for now” behavior when automatic detection cannot or should not select a game.
Technical Changes
kalium/installers/mo2_game.py
- Updated
detect_managed_game_choices()to default to a blank selection and only populate known-game templates until the user explicitly selects or browses for a game. - Updated
normalize_mo2_game_name()so the selector retains the full Steam display name for informational purposes while normalizing only the value written to MO2's internalgameName=configuration. - Added a
seen_namesguard todetect_managed_game_choices()to prevent duplicate game entries.
Game Identity vs. Game Path
Kalium now clearly separates the logical identity of a game from its physical filesystem location:
Steam display name
↓
gameName=
↓
MO2 game identity
User-selected folder
↓
gamePath=
↓
Actual game location
This prevents the game selector's informational data from interfering with the actual path used by MO2.
Result
MO2 instance creation and switching are now more reliable, particularly for portable MO2 installations, while game detection is less presumptive and more portable across different Linux and Steam configurations.
v1.1.0 Beta
Update README with mod issues and WINEPREFIX details Added notes regarding mod compatibility issues with specific versions and installation processes. Clarified the importance of the WINEPREFIX setting for running LOOT and addressed potential graphical issues.
v1.0.0 Beta
Enhance README with NaK reference and redesign note Updated project description to include link to NaK and mention redesign.