pp-gen
Small script to calculate difficulty and performance points related values for a given list of map ids.
How to use
- Rename
.env.exampleto.envand put proper values for both of its variables:PERF_CALC_PATHis going to be something likeC:/osu-tools/PerformanceCalculator/bin/Release/net5.0/PerformanceCalculator.dllMAP_PATHis the path to the folder containing a bunch of{map_id}.osufiles
- Since
PerformanceCalculator.dllwon't print the stars for a map simulation by default, you will need to make a tiny adjustment to a file in the osu-tools repo. Inosu-tools/PerformanceCalculator/Simulate/SimulateCommand.cs, add the following line to the other lines that look similar:Don't forget to recompile osu-tools viao["Stars"] = difficultyAttributes.StarRating;dotnet build -c Releaseafter making the change. - Run
cargo run --release. The program will use thePerformanceCalculator.dllto calculate the values and then store them inoutput.json.
Output format
The calculated values for each map for multiple different mod combinations will be stored in a JSON array. The array elements will be of the following form:
- osu:
{ "mode": 0, "map_id": integer, "aim": double, "speed": double, "accuracy": double, "flashlight": double, "od": double, "ar": double, "mods": "HD, HR", // comma + whitespace separated string of mod abbreviations ("None" for nomod) "stars": double, "pp": double, } - taiko:
{ "mode": 1, "map_id": integer, "accuracy": double, "strain": double, "mods": "HD, HR", // comma + whitespace separated string of mod abbreviations ("None" for nomod) "stars": double, "pp": double, } - catch:
{ "mode": 2, "map_id": integer, "mods": "HD, HR", // comma + whitespace separated string of mod abbreviations ("None" for nomod) "stars": double, "pp": double, } - mania:
{ "mode": 3, "map_id": integer, "accuracy": double, "strain": double, "mods": "HD, HR", // comma + whitespace separated string of mod abbreviations ("None" for nomod) "stars": double, "pp": double, }