Screen-reader accessibility mod for Melatonin using MelonLoader.
- Install MelonLoader for Melatonin: https://github.com/LavaGang/MelonLoader.Installer/releases
- Download the latest release ZIP, for example
MelatoninAccess-v1.2.0.zip. - Open the ZIP, press
Ctrl+A, pressCtrl+C, then paste everything into your Melatonin folder, the folder that containsMelatonin.exe. - Confirm these files exist after pasting:
Mods/MelatoninAccess.dllMods/cutscene-ad/manifest.jsonMods/localization/loc.en.jsonTolk.dllnvdaControllerClient32.dllUserData/Loader.cfg
- Start the game and confirm you hear the mod loaded announcement.
Important:
Tolk.dllandnvdaControllerClient32.dllmust stay in the main game folder besideMelatonin.exe, not insideMods.cutscene-adandlocalizationmust stay inside theModsfolder.
- Spoken menu navigation and option state announcements.
- Contextual tutorial and gameplay cue announcements.
- Tutorial, dialog, and popup reading.
- Map navigation support, including fast landmark teleport.
- Results and stage-end announcements, including lock reasons.
- Credits narration while entries scroll.
- Full level editor narration, including cursor, tools, advanced menu, and timeline tabs.
- Mod-generated speech in all game-supported languages.
- Toggleable announcement groups through
MelonPreferences.
- Title screen: press Action to begin. Press the language key, default
Tab, to change language. - Menus:
UpandDownmove, Action confirms, Cancel goes back. - Map:
[and]jump between landmarks. - Map fallback: if Action is bound to
[or], useF9for previous andF10for next. - Gamepad map jump: use
Action LeftandAction Right, commonlyLBandRB. - Map summary: press
F1on map scenes to hear total stars collected and how many more are needed to pass. - Context help: press
F11to hear the available controls for the current screen.
F1: on map scenes only, speak chapter and map star totals.F2: turn contextual cue announcements on or off.F3: turn menu position announcements on or off.F11: speak context help for the current screen.F12: turn debug logging on or off.
F2, F3, and F12 save immediately and keep their state after restart.
Mod-generated announcements follow the in-game language. Supported languages match the game language menu:
- English
- Simplified Chinese
- Traditional Chinese
- Japanese
- Korean
- Vietnamese
- French
- German
- Spanish
- Portuguese
Settings are stored in UserData/MelonPreferences.cfg under the MelatoninAccess category.
AnnounceMapHotspots: map arrival and teleport destination speech.AnnounceRhythmCues: contextual tutorial and gameplay cues.AnnounceMenuPositions: position context such as1 of 4.AnnounceTutorialDialog: tutorial and dialog narration.AnnounceCreditsRoll: credits title and scrolling names.DebugModeEnabled: debug logging state used byF12.
Note:
- The config key
AnnounceRhythmCuesis a legacy name. It controls contextual cues.
Use the wrapper scripts instead of raw dotnet build.
Build only:
pwsh -File .\scripts\Build-Mod.ps1Build and copy the mod into the game Mods folder:
pwsh -File .\scripts\Deploy-Mod.ps1The local scripts currently default to:
L:\SteamLibrary\steamapps\common\Melatonin
If your install is somewhere else, pass -GamePath.
pwsh -File .\scripts\Build-ReleasePackage.ps1 -Version "v1.2.0"This creates a copy-paste-ready ZIP with this runtime layout:
Mods/MelatoninAccess.dllMods/cutscene-ad/manifest.jsonMods/cutscene-ad/scripts/*.jsonMods/localization/loc.<lang>.jsonTolk.dllnvdaControllerClient32.dllUserData/Loader.cfg
The release ZIP intentionally leaves out development docs, logs, and regression scripts.
Speech regression check:
pwsh -File .\scripts\Test-SpeechRegression.ps1Localization coverage check:
pwsh -File .\scripts\Test-LocalizationQA.ps1Cutscene audio-description data check:
pwsh -File .\scripts\Test-CutsceneAdPipeline.ps1For cutscene authoring details, see docs/cutscene-ad-pipeline.md.
Extract Unity assets from the installed game:
python .\scripts\extract_unity_assets.py --output-dir .\artifacts\asset-extractIf you like the project, you can support it here: https://buymeacoffee.com/potatophones
- Thanks to luyi for testing and Chinese localization fixes.
- Thanks to dreamburguer for Spanish localization fixes.