Open Aesthesys opened 7 years ago
I think following things could help in understanding the logics of mania pp.
It's all about star rating, score, OD and object count. No accuracy number. No aim/acc/stream value. Just some bare numbers.
The only problem is trying to figure out DT/HT. Afaik there isn't a formula for calculating the star rating without the osu! doing the work itself . You can ignore HR and NF, as both are unranked. HD, FI and FL are ranked, but don't award score/pp bonus.
PM me on osu! ingame/forums or on Discord (IceDynamix#7153) if you have any questions about the pp formula etc.
pp = ( ( StrainBase × StrainMultiplier )^1.1 + AccValue^1,1 )^( 1 ÷ 1,1 ) × 0.88
Accvalue = ( OD ÷ 10 ) × 0.2 × StrainBase × ( ( Score - 960000 ) ÷ 40,000 )^1.1
StrainBase = ( 5 × MAX( 1 , Star Rating × 5 ) - 4 )^2.2 ÷ 110000 × ( 1 + 0.1 × MIN( Objects ÷ 1500 , 1))
Strain Multiplier:
500k - 600k score: 0.00 + 0.30 × ((score - 500,000) ÷ 100,000)
600k - 700k score: 0.30 + 0.25 × ((score - 600,000) ÷ 100,000)
700k - 800k score: 0.55 + 0.20 × ((score - 700,000) ÷ 100,000)
800k - 900k score: 0.75 + 0.15 × ((score - 800,000) ÷ 100,000)
900k - 1mil score: 0.90 + 0.10 × ((score - 900,000) ÷ 100,000)
@IceDynamix The largest problem which still remains is the star difficulty calculation, which as far as I know isn't open source. It would be possible just to fetch and parse that from the page itself, but it's so hacky I wouldn't want to implement it that way.
I did manage to find this project, but I'm not at all sure how accurate that is.
Also, since ezpp! project itself doesn't really implement the pp/difficulty calculation this issue could be mirrored to ojsama, the library it uses to perform the math.
you can find calc here http://maniapp.uy.to/