Add notes about project plan and current state of our beat saber installation

This commit is contained in:
pleb
2026-06-28 12:11:33 -07:00
parent caaa4a6558
commit 5a9e873de4
2 changed files with 185 additions and 0 deletions
+1
View File
@@ -76,6 +76,7 @@ Runtime state should not need to live inside the repository. By default, keep mu
installed.json
plans/
downloads/
<plugin-id>/
backups/
```
+184
View File
@@ -0,0 +1,184 @@
# 1.40.8 Mods in Use
Mods installed by bs-manager and not.
## bs-manager source of truth
bs-manager gets verified mods from BeatMods:
```text
https://beatmods.com/api/mods?status=verified&gameVersion=1.40.8&gameName=BeatSaber&platform=steampc
```
It downloads mod zips from `/cdn/mod/<zipHash>.zip`, resolves dependencies by BeatMods mod-version ids, and recognizes installed mods by MD5 hash lookup through `/api/hashlookup?hash=<md5>`.
For the mounted Windows install, `UserData/Disabled Mods.json` has an empty `DisabledModIds` array, so the files currently present in `Plugins/` and `Libs/` are enabled.
## Core
- BSIPA https://github.com/nike4613/BeatSaber-IPA-Reloaded
- SongCore https://github.com/Kylemc1413/SongCore
## Essential
- BeatSaverDownloader https://github.com/Top-Cat/BeatSaverDownloader
- BeatSaverVoting https://github.com/Top-Cat/BeatSaverVoting
- PlaylistManager https://github.com/rithik-b/PlaylistManager
- BeatSaverUpdater https://github.com/ibillingsley/BeatSaverUpdater
- SiraLocalizer https://github.com/Auros/SiraLocalizer
## Cosmetic
- AdBlocker https://github.com/JonnyVR1/AdBlocker
- HighlightBombs https://github.com/Meivyn/HighlightBombs
## Library
bs-manager installs these mostly as dependency closure. BeatMods records dependencies by mod-version id, so install planning needs to resolve the selected mod, then recursively add each dependency version before downloading zips from `zipHash`.
- AssetBundleLoadingTools https://github.com/nicoco007/AssetBundleLoadingTools
- Required by: Vivify.
- BeatSaberMarkupLanguage https://github.com/monkeymanboy/BeatSaberMarkupLanguage
- Required by: most UI/config mods here, including SongCore, SiraUtil, PlaylistManager, BeatSaverDownloader, Chroma, Vivify, ScoreSaber, and BeatLeader.
- BeatSaberPlaylistsLib https://github.com/Meivyn/BeatSaberPlaylistsLib
- Required by: PlaylistManager.
- BeatSaverSharp https://github.com/lolPants/BeatSaverSharp
- Required by: BeatSaverDownloader, BeatSaverUpdater, DiTails, PlaylistManager.
- BS Utils https://github.com/Kylemc1413/Beat-Saber-Utils
- Required by: BeatSaverDownloader, BeatSaverVoting, BeatLeader.
- CameraUtils https://github.com/Reezonate/CameraUtils
- Required by: Vivify.
- CustomJSONData https://github.com/Aeroluna/CustomJSONData
- Required by: Chroma, Heck, NoodleExtensions, Vivify.
- Dynamic Bone https://assetstore.unity.com/packages/tools/animation/dynamic-bone-16743
- BeatMods-managed library in this install, but no depender was found among the currently listed BeatMods-recognized mods.
- Final IK https://assetstore.unity.com/packages/tools/animation/final-ik-14290
- BeatMods-managed library in this install, but no depender was found among the currently listed BeatMods-recognized mods.
- Heck https://github.com/Aeroluna/Heck
- Required by: Chroma, NoodleExtensions, Vivify.
- ImageSharp https://github.com/SixLabors/ImageSharp/
- Required by: BeatSaberPlaylistsLib.
- Ini Parser https://github.com/rickyah/ini-parser
- Required by: BS Utils.
- LeaderboardCore https://github.com/NSGolova/LeaderboardCore
- Required by: BeatLeader.
- LookupID https://github.com/Aeroluna/Heck
- Required by: Chroma.
- OpenVR API https://github.com/nicoco007/BeatSaber-OpenVR-API
- Present in `Plugins/` as `OpenVRHelper.manifest`; no depender was found among the currently listed BeatMods-recognized mods.
- protobuf-net https://github.com/protobuf-net/protobuf-net
- Required by: SongDetailsCache.
- ScoreSaberSharp
- Required by: BeatSaverDownloader.
- SiraUtil https://github.com/Auros/SiraUtil
- Required by: most Sira/Auros-style mods here, including SongCore, PlaylistManager, SiraLocalizer, Chroma, NoodleExtensions, BeatLeader, ScoreSaber, and many UI/tweak mods.
- SongDetailsCache https://github.com/kinsi55/BeatSaber_SongDetails
- Required by: BetterSongList, SongRankedBadge.
When a library package is installed by bs-manager, the payload usually lands in `Libs/`; several packages also leave a `.manifest` marker in `Plugins/`. `plugin-helper` should treat both files as part of the dependency package's install state, not as separate user-selected plugins.
### .NET framework library assemblies
These are BeatMods `library` records that bs-manager installs into `Libs/`, not normal Beat Saber plugin repos with GitHub releases.
- System.IO.Compression https://github.com/mono/mono
- BeatMods library id 304.
- Provides stream compression/decompression classes.
- Installed file: `Libs/System.IO.Compression.dll`.
- System.IO.Compression.FileSystem https://github.com/microsoft/referencesource
- BeatMods library id 303.
- Provides the .NET Framework `ZipFile`/filesystem path helpers layered over `System.IO.Compression`.
- Installed file: `Libs/System.IO.Compression.FileSystem.dll`.
For `plugin-helper` to reproduce bs-manager behavior, these should be modeled as special framework-library dependencies instead of GitHub-release plugins:
- The dependency solver should be able to select BeatMods library ids 303 and 304 when another mod requires them, even though the BeatMods records do not expose normal version/download metadata in the 1.40.8 query.
- The installer should place the resolved DLLs in `Libs/`, never `Plugins/`.
- The install state should record them like any other installed file, including source, target path, size, and hash, so uninstall/rollback stays deterministic.
- The helper should not overwrite `Beat Saber_Data/Managed/System.IO.Compression*.dll`; those assemblies already exist in the game runtime and are a different size than the copies bs-manager put in `Libs/`.
- If a reusable source cannot be derived from BeatMods metadata, the registry needs an explicit rule or vendored/cache source for these two DLLs rather than a vague `dot.net` URL.
## Practice
- IntroSkip https://github.com/Loloppe/Intro-Skip
- FailButton https://github.com/qe201020335/FailButton
- NoodleExtensions https://github.com/Aeroluna/NoodleExtensions
- Vivify https://github.com/Aeroluna/Vivify
## UI
- HitScoreVisualizer https://github.com/ErisApps/HitScoreVisualizer
- WhyIsThereNoLeaderboard
- BetterSongList https://github.com/kinsi55/BeatSaber_BetterSongList
- DiTails https://github.com/Auros/DiTails/
- HideTheLogo https://github.com/TheBlackParrot/HideTheLogo
- SongChartVisualizer https://github.com/NuggoDEV/SongChartVisualizer
- SongRankedBadge https://github.com/qe201020335/SongRankedBadge
## Other
- BeatLeader https://github.com/BeatLeader/beatleader-mod
- ScoreSaber https://github.com/ScoreSaber/pc-mod
## Tweaks
- EasyOffset https://github.com/Reezonate/EasyOffset
- GottaGoFast https://github.com/kinsi55/CS_BeatSaber_GottaGoFast
- HitsoundTweaks https://github.com/GalaxyMaster2/HitsoundTweaks
- KeepMyOverridesPls https://github.com/qqrz997/KeepMyOverridesPls
- SoundReplacer https://github.com/Meivyn/SoundReplacer
## Lighting
- Chroma https://github.com/Aeroluna/Chroma
- PitchBlack https://github.com/Loloppe/BeatSaber_PitchBlack/
## Paid closed source
### BeatSaberPlus
- BeatSaberPlus_Chat (`BeatSaberPlus_Chat.dll`)
- BeatSaberPlus_ChatEmoteRain (`BeatSaberPlus_ChatEmoteRain.dll`)
- BeatSaberPlus_ChatIntegrations (`BeatSaberPlus_ChatIntegrations.dll`)
- BeatSaberPlus_ChatRequest (`BeatSaberPlus_ChatRequest.dll`)
- BeatSaberPlus_GameTweaker (`BeatSaberPlus_GameTweaker.dll`)
- BeatSaberPlus_MenuMusic (`BeatSaberPlus_MenuMusic.dll`)
- BeatSaberPlus_Multiplayer (`BeatSaberPlus_Multiplayer.dll`)
- BeatSaberPlus_NoteTweaker (`BeatSaberPlus_NoteTweaker.dll`)
- BeatSaberPlus_SongChartVisualizer (`BeatSaberPlus_SongChartVisualizer.dll`)
- BeatSaberPlus_SongOverlay (`BeatSaberPlus_SongOverlay.dll`)
### Naluluna
- NalulunaMenu (`NalulunaMenu.dll`)
- NalulunaCounters (`NalulunaCounters.dll`)
- NalulunaLevelDetail (`NalulunaLevelDetail.dll`)
- NalulunaSliceVisualizer (`NalulunaSliceVisualizer.dll`)
- NalulunaSongPreview (`NalulunaSongPreview.dll`)
- NalulunaMissIndicator (`NalulunaMissIndicator.dll`)
- NalulunaEnergy (`NalulunaEnergy.dll`)
- NalulunaFps (`NalulunaFps.dll`)
- NalulunaPPCoin (`NalulunaPPCoin.dll`)
- NalulunaRewinder (`NalulunaRewinder.dll`)
- NalulunaAvatars (`NalulunaAvatars.dll`)
- NalulunaShaders (`NalulunaShaders.dll`)
- NalulunaSkybox (`NalulunaSkybox.dll`, `NalulunaSkyboxSamples.manifest`)
- NalulunaUtils (`NalulunaUtils.dll`)
These mods were installed manually, not from bs-manager.
- ScoreSaber
- BeatLeader
- AccSaber
- ChatPlexSDK_BS
- Dimmer
- DiTails
- HideTheLogo
- HitsoundTweaks
- PitchBlack
- ReeCamera
- ReeSabers
- SoundReplacer
- BetterSongList
- Setlist
- SongChartVisualizer
- SongRankedBadge
- Chroma
- EasyOffset
- Custom Campaigns
- JDFixer
- KeepMyOverridesPls
- GottaGoFast
- KeyRemapper
- SquatToBegin
- wipbot