Today the mod-list add flow is import-oriented: drag/picker for a folder or archive, or the nxm click for Nexus. Adding an already-imported mod to a second profile means re-downloading + re-extracting it (the nxm path) or re-picking the file. The import service dedups by source (FindBySource), so no storage is duplicated, but the download + extract are wasted work.
The unified repository already stores each mod once (one container per (source, identity)), and IProfileService.AddMod(profileId, existingContainerId, policy) is a pure reference add: no download, no import, no I/O against the mod files. A future "mod library" / "add from existing" UI view could browse IModRepository.List() and call AddMod directly. No backend work needed; it is a UI feature.
Low priority. The Darktide mod size survey (median ~12 KB, p90 ~300 KB, max ~55 MB) means the wasteful re-download is cheap in practice. Worth doing eventually for UX (re-downloading a mod you already have feels wrong even when it is fast), but no current plans.
Today the mod-list add flow is import-oriented: drag/picker for a folder or archive, or the nxm click for Nexus. Adding an already-imported mod to a second profile means re-downloading + re-extracting it (the nxm path) or re-picking the file. The import service dedups by source (
FindBySource), so no storage is duplicated, but the download + extract are wasted work.The unified repository already stores each mod once (one container per
(source, identity)), andIProfileService.AddMod(profileId, existingContainerId, policy)is a pure reference add: no download, no import, no I/O against the mod files. A future "mod library" / "add from existing" UI view could browseIModRepository.List()and callAddModdirectly. No backend work needed; it is a UI feature.Low priority. The Darktide mod size survey (median ~12 KB, p90 ~300 KB, max ~55 MB) means the wasteful re-download is cheap in practice. Worth doing eventually for UX (re-downloading a mod you already have feels wrong even when it is fast), but no current plans.