Repository navigation
v0.23.0 — disable-not-reorder skin blocking + library custom-character detection
v0.23.0 — load-order: disable instead of reorder
SkinManager no longer reorders settings.save's mod_list. Reordering shifted the load order of content/framework mods (RitsuLib and the custom characters built on it), which reshuffled the numeric ids in the game's ModelIdSerializationCache — so an existing progress.save would mis-map and the player's progress appeared "not loaded." The reorder also never reliably stuck, so it re-armed the restart modal every boot.
- A skin that loads before SkinManager (so the
TryLoadModintercept can't catch it) is now blocked by disabling it (is_enabled = false) instead of reordering. Disabling is order-preserving and content-safe (a managed skin defines noModelDbentities). Skins that load after SkinManager are unaffected. Resolution is deterministic — one restart, no modal loop. - Hard guard: never auto-disables BaseLib,
Sts2*sister mods, or any mod whose DLL defines game-entity subclasses (a content mod) — those are left loaded-but-unblocked so their save data and dependencies stay intact.
v0.22.0 — generic library-based custom-character detection
- Custom characters built on any framework (RitsuLib, not just BaseLib) are now recognized via a framework-agnostic signal: a character-select asset for a non-base character id. Fixes RitsuLib characters (e.g. Hornet) being mis-classified as a base-character skin and DLL-blocked so they never appeared in Character Select.
- Manifest dependencies in object form (
{ "id": ..., "min_version": ... }) are now parsed, not just bare strings. - Fallback: every DLL-blocked mod is also surfaced in the Other Mods tab with a restore toggle, so a misclassified mod can always be switched back on.