How anosu/muvluvmod works
MuvluvMod is a BepInEx plugin for the DMM Windows game client. On startup, the plugin initializes configuration and services, installs Harmony patches, and loads translations; patched game scenario and master-data paths apply those translations during play. Translation resources are manifest-checked and cached, while optional missing-scene reporting and update checks use remote services. Other patches provide the documented mosaic, skip-button, voice, and battle-skip controls. The README documents these capabilities; links for unsampled service internals are limited to what the tree and sampled callers support.
Main entry points: Plugin.cs Plugin entry · PatchManager.cs Patch manager · TranslationPatch.cs Scenario translation · TranslationCache.cs Translation cache
Components 20
Plugin runtime
- Plugin entry
src/MuvluvMod/Core/Plugin.cs - Configuration
src/MuvluvMod/Core/Config.cs - Hotkeys
src/MuvluvMod/Core/Hotkey.cs - Patch manager
src/MuvluvMod/Patches/PatchManager.cs
Translation
- Scenario translation
src/MuvluvMod/Patches/TranslationPatch.cs - Translation manager
src/MuvluvMod/Services/TranslationManager.cs - Translation cache
src/MuvluvMod/Services/TranslationCache.cs - Content hashing
src/MuvluvMod/Services/TranslationHash.cs - Master-data translator
src/MuvluvMod/Services/MasterDataTranslator.cs - Fallback font asset
src/MuvluvMod/Services/TranslationManager.cs - Translation files
Gameplay patches
- Gameplay enhancements
src/MuvluvMod/Patches/EnhancePatch.cs
Remote services
- Scene request capture
src/MuvluvMod/Patches/MissingScenePatch.cs - Translation host
- Missing-scene reporter
src/MuvluvMod/Services/MissingSceneReporter.cs - Missing-scene service
- Update checker
src/MuvluvMod/Services/UpdateChecker.cs - Update service
Other components
- Player
- Game client
Connections 27
- Player → Game client: starts
- Game client → Plugin entry: loads plugin
- Plugin entry → Configuration: initializes
- Plugin entry → Hotkeys: creates
- Plugin entry → Patch manager: installs patches
- Plugin entry → Translation manager: initializes
- Plugin entry → Missing-scene reporter: initializes
- Plugin entry → Update checker: checks updates
- Configuration → Hotkeys: provides settings
- Configuration → Gameplay enhancements: controls
- Patch manager → Scenario translation: registers
- Patch manager → Gameplay enhancements: registers
- Patch manager → Scene request capture: registers
- Game client → Scenario translation: invokes hooks
- Game client → Gameplay enhancements: invokes hooks
- Game client → Scene request capture: invokes hooks
- Scenario translation → Patch manager: reads scene state
- Scenario translation → Translation manager: requests translations
- Scenario translation → Master-data translator: translates data
- Translation manager → Translation cache: loads resources
- Translation cache → Content hashing: computes hashes
- Translation cache → Translation files: reads and writes
- Translation cache → Translation host: refreshes resources
- Translation manager → Fallback font asset: loads fallback font
- Scene request capture → Missing-scene reporter: submits scene URL
- Missing-scene reporter → Missing-scene service: loads list and submits
- Update checker → Update service: checks version