Mapset Verifier (MV) is a desktop app which tests quantifyable issues in beatmapsets from osu!, such as unsnapped objects and unused files. Many of these issues would otherwise disqualify the map from being ranked. Although mainly aimed at Beatmap Nominators, this can also be used by mapset creators and reviewers to speed up the ranking process.
MV is a successor to the game's built-in AiMod and Sieg's Modding Assistant, providing more features and greater scalability. Some examples include auto-updates, plugin support, and integrated documentation and diff utilities.
This is currently being ported to osu!lazer. You can track its progress here!
Some issues are not easily quantified, especially ones related to metadata and timing; far from everything is covered. Also, false positives and false negatives may occur, as with any similar tool. So always use your own judgement and be critical about what the program points out, especially warnings.
See the latest release. On Windows, get the exe file. On Linux, get the tar.gz / use this package on archlinux.
Version | Date Released | Windows | Linux |
---|---|---|---|
1.8.2 | 2021-09-21 | ||
1.8.0 | 2021-09-14 | ||
1.7.2 | 2020-10-07 | ||
1.7.1 | 2020-10-03 | ||
1.7.0 | 2020-09-28 | ||
1.6.6 | 2020-08-04 | ||
1.6.5 | 2020-07-03 |
Windows protected pc
Stuck on install screen on reinstall
Javascript error ENOENT, no MapsetVerifierBackend.exe in /app/api/win-x86
Infinite loading, windows 7 version before KB2533623
Mapset Verifier is comprised of the following open source .NET Core components:
Component | Description |
---|---|
MapsetParser | Parses .osu and .osb files in the given mapset folder |
MapsetChecks | The default plugin for MV. Includes all-mode and standard checks |
MapsetSnapshotter | A diff utility. Provides a summary of changes within a mapset since a snapshot |
MapsetVerifierFramework | A plugin framework for loading and running check DLLs |
MapsetVerifierBackend | Handles rendering and communication between the framework and Electron client |
The remaining HTML/CSS/JS files are available in the application, see /Mapset Verifier/resources/app
.
Feature | Mapset Verifier | Modding Assistant | AiMod |
---|---|---|---|
Difficulty Interpretation | ✅ (Option, Name, SR) | ✅ (Name, SR) | ✅ (SR) |
Snapshots | ✅ (Automatic) | ✅ (Manual) | ⬜️ |
Integrated Documentation | ✅ | ✅ (RC Snippets) | ⬜️ |
Timeline Comparison | ✅ | ✅ (Taiko-only) | ⬜️ |
Song folder detection | ✅ | ⬜️ | ✅ |
Automatic Updates | ✅ (Windows-only) | ⬜️ | ✅ |
Verbose Mode | ✅ | ⬜️ | ✅ |
Plugin Support | ✅ | ⬜️ | ⬜️ |
Open Source | ✅ | ⬜️ | ⬜️ |
Difficulty Graph | ✅ | ✅ (Outdated SR) | ⬜️ |
Add check DLLs to %APPDATA%/Mapset Verifier Externals/checks
to have them load in just like the default checks. To create these DLLs, have a look at how MapsetChecks was created. This is probably also useful.
Third-party plugins (that I'm aware of):
In general, do be careful about which check plugins you use, as they can be malicious. The plugins are executed by the back end of the application, so they can pretty much do anything the rest of the application can.
Category | Issue Message |
---|---|
Resources | Missing background. |
Resources | Too high or low background resolution. |
Resources | Inconsistent video usage. |
Resources | Overlay layer usage. |
Resources | Too high sprite resolution. |
Resources | Inconsistent video offset. |
Resources | Too high video resolution. |
Metadata | Inconsistent metadata. |
Metadata | Incorrect marker format. |
Metadata | Incorrect marker spacing. |
Metadata | BMS used as source. |
Metadata | Incorrect format of (TV Size) / (Game Ver.) / (Short Ver.) / (Cut Ver.) / (Sped Up Ver.) in title. |
Metadata | Unicode in romanized fields. |
Metadata | Missing genre/language in tags. |
Files | Issues with updating or downloading. |
Files | 0-byte files. |
Files | Unused files. |
Audio | Audio channels in video. |
Audio | More than 20% unused audio at the end. |
Audio | Too high or low audio bitrate. |
Audio | Frequent finish hit sounds. |
Audio | Delayed hit sounds. |
Audio | Incorrect hit sound format. |
Audio | Imbalanced hit sounds. |
Audio | Too short hit sounds. |
Audio | Multiple or missing audio files. |
Audio | Incorrect audio format. |
Category | Issue Message |
---|---|
Timing | Concurrent or conflicting timing lines. |
Timing | First line toggles kiai or is inherited. |
Timing | Inconsistent uninherited lines, meter signatures or BPM. |
Timing | Unsnapped kiai. |
Timing | Inconsistent or unset preview time. |
Timing | Unsnapped hit objects. |
Timing | Unused timing lines. |
Timing | Wrongly or inconsistently snapped hit objects. |
Spread | Lowest difficulty too difficult for the given drain/play time(s). |
Settings | Abnormal difficulty settings. |
Settings | Inconsistent mapset id, countdown, epilepsy warning, etc. |
Settings | Slider tick rates not aligning with any common beat snap divisor. |
Settings | Abnormal difficulty settings. |
Hit Sounds | Low volume hit sounding. |
Events | Breaks only achievable through .osu editing. |
Compose | Abnormal amount of slider nodes. |
Compose | Concurrent hit objects. |
Compose | Too short drain time. |
Compose | Invisible sliders. |
Compose | Abnormal amount of slider nodes. |
Category | Issue Message |
---|---|
Timing | Hit object is unaffected by a line very close to it. |
Spread | Multiple reverses on too short sliders. |
Spread | Too short sliders. |
Spread | Object too close or far away from previous. |
Spread | Too short spinner time or spinner recovery time. |
Spread | Perfect stacks too close in time. |
Spread | Objects close in time not overlapping. |
Settings | Default combo colours without forced skin. |
Settings | Too dark or bright combo colours or slider borders. |
Hit Sounds | Long periods without hit sounding. |
Events | Storyboarded hit sounds. |
Compose | Burai slider. |
Compose | Too short spinner. |
Compose | Obscured reverse arrows. |
Compose | Offscreen hit objects. |
Compose | Abnormally large spacing. |
Compose | Ambiguous slider intersection. |
Category | Issue Message |
---|---|
Timing | Inconsistent omitted bar lines. |
Timing | Hit object is unaffected by a line very close to it. |
Events | Storyboarded hit sounds. |
Category | Issue Message |
---|---|
Timing | Hit object is unaffected by a line very close to it. |
Settings | Default combo colours without forced skin. |
Settings | Too dark or bright combo colours or slider borders. |
Hit Sounds | Long periods without hit sounding. |
Events | Storyboarded hit sounds. |
Compose | Spinner gap too small. |
Modes apart from standard do not have their SRs implemented, so difficulty levels will likely be wrong.
Either post an issue here or contact me on Discord @naxess. Give beatmapset and reproduction steps if applicable. If you don't have me on discord just join the Aiess Project, after which you should be able to message me.