-
-
Notifications
You must be signed in to change notification settings - Fork 3
Auto Checking & Criteria indicators
In the AutoModder menu in Song Info, there is a button called Auto Check Song Info, which will automatically check the points listed below the button for any issues.
In the AutoModder menu in Song Info, there will be a button displayed over the difficulty called Auto Check. These are always for the Standard characteristic.
The other way to auto-check a difficulty is in the escape menu overlay when inside the editor. There you will find another Auto-Check button.
| Name | Description |
|---|---|
| Difficulty | BeatLeader pass rating |
| Tech | BeatLeader tech rating |
| eBPM | Peak effective bpm |
| SPS | Swings per second |
| Linear | Percentage on how linear a map is |
| Bomb Reset | Percentage on how many bomb reset there is in a map compared to swing |
| Slider | Percentage on how many sliders there is compared to swing |
| Crouch | Amount of crouch wall in the map |
| Left/Right | Percentage between left and right hand swings |
The criteria indicators can be found on the AutoModder menu in Song Info and on the escape menu overlay when inside the editor.
These indicators show the name of the criteria, the status of the criteria, and a button for manually changing the status of the criteria. When the status indicator is green, there are no issues found related to that criteria. When possible issues/warnings were found it is yellow, and if any issues were found it is red.
- Timing & BPM cannot be detected or checked.
- V3 Lights are not detected.
- Angle change of chains and sliders can currently still be buggy. Squish isn't taken into consideration.
Below is a detailed overview of the criteria that is checked, what exactly is being checked for, and if there are any TODO's. Feel free to PR a solution for any of these TODO's.
Song Name
R7A - Check if the field is empty.
Song Author
R7C - Check if the field is empty.
Sub Name
R7B - Check the Song Name and Song Author field for specific keyword. Warn the user that those need to be in Sub Name if detected.
Creator
R7C - Check if the field is empty.
- Check if the field is too long.
Offset
R1A - Check if the offset is at 0. This is a deprecated feature that shouldn't be used.
BPM
R1A- Nothing yet, only warn the user that the BPM need to be set correctly.
TODO: Could add automatic BPM detection like ArrowVortex, but I don't really see the point.
Difficulty Ordering
R7E - Analyze the pass rating (TechAlgo) of each difficulty and check if the order match.
Difficulty Progression
R1G - Nothing yet.
TODO: Implement this with available data.
Preview
- Recommend the user to set a preview if default is detected.
Hot Start
R1E - Detect if there's objects in the map that are too early. Configurable.
Cold End
R1E - Detect if there's objects in the map that are too late. Configurable.
Minimum Map Duration
R1F - Detect if the duration between the first and last note is too short. Configurable.
Outside
- Detect if there's objects outside of the playable song length.
Difficulty Label
- Check if the field is too long.
- Check if the field contains profanities.
Requirement
R1C - Detect if the beatmap has mod requirement.
NJS
R1A - Detect if the NJS is 0 or under.
Y1C - Recommend a range of NJS based on the SPS of the map if the current NJS doesn't match.
Y1C - Recommend a range of RT based on the SPS of the map if the current RT doesn't match.
TODO: Add configuration for this maybe idk.
Slider
R2A - Find the average precision of slider in the map. Warn the user if slider aren't at the right precision.
- Detect if a slider rotate further than 45 degree.
TODO: Sliders degree calculation need to be done properly from scratch and add configuration.
Fused Object
R3A - Detect if objects are too close of each other. Configurable.
R5D - Detect if bombs are too close of each other. Configurable.
Wall
Y4A-R4B - Calculate dodge wall per seconds and warn the user if above threshold. Configurable.
R4C - Detect walls that force the user to move outside of normal boundaries.
R3B - Detect objects hidden behind walls.
R4E - Detect walls with short duration in the middle two lanes and trail duration. Configurable.
R4D - Detect negative walls.
Chain
R2D - Detect if chains are part of the first 16 notes.
R2D - Detect if chains have reverse direction.
R2D - Detect spacing between links.
R2D - Detect how far chains reach outside of grid.
R2D - Detect chains angle.
R2D - Detect chains duration.
Parity
- Use JoshaParity to analyze parity.
R2C - Detect parity error. - Detect extreme rotation. Configurable.
- Detect if the parity is being played inverted.
- Debug mode for even more data.
Timing
- Automatic detection of unusual precision.
TODO: Implement something. Could be a very strict onset detection or something similar.
Vision Block
R2B-R5E - Detect vision blocked notes and bombs under and above specific threshold. Configurable.
R2B-R5E - Detect outer lane exception. Configurable.
R2B - Detect bottom layer exception. Configurable.
R2B - Detect note pattern exception. Configurable.
R2B - Detect if bombs are in sabers trajectory.
TODO: Implement bombs pattern detection. Implement chain links VB. Implement crouch wall VB. Add dot to sabers trajectory.
Light
R6A - Detect if map has any light.
R6A - Calculate the average lights per beat and warn the user if the average is not high enough. Configurable.
R5B - Detect if bombs are well lit.
TODO: Make this better. Add Y6A warning if the map got too many spam/strobes/idk. Implement v3 lights check for bombs (currently skipped).
Loloppe
R3C - Detect parallel notes.
Prolonged Swing
R2A - Detect long duration chains.
R2A - Detect chain links spam.
R2A - Detect Dots spam.
R2A - Detect Pauls.
TODO: Everything in this need to be coded properly.
Swing Path
R3E-R5A - Detect if objects block the swing path of other objects.
- Detect Badcut double.
TODO: Need some polishing.
Hitbox
R3G - Detect if inline are too close for the current BPM/NJS/etc.
R3G - Detect hitbox staircase.
R3G - Detect reverse hitbox staircase.
TODO: I implemented this from Kival Evan map check, but this could definitely use some work.
Handclap
R3D - Detect adjacent handclap pattern.
R3D - Detect double that face towards each other with similar spacing.
R3D - Detect wide crossover double.
TODO: The wide stuff need to be coded properly.