Skip to content

Scoring V3

This document specifies the ScoreV3 calculation rules used by Milthm.

ScoreV3 uses the ordinary judgment sequence Ξ={ξ1,ξ2,,ξN}\Xi = \{\xi_1, \xi_2, \cdots, \xi_N\} defined in Judgment Definitions. Lightning judgments are isolated from this sequence, but Lightning Miss overflow can still affect the combo score state used by the score multiplier.

Input Symbols

These symbols are defined in Judgment Definitions and are used as inputs in this document.

SymbolMeaning
J\mathcal{J}Ordinary judgment set.
Ξ\XiOrdinary judgment sequence.
Φ\PhiLightning judgment sequence.
ξi\xi_iThe ii-th ordinary judgment.
NNOrdinary judgment count.
OfO_fLightning overflow from a Lightning Miss.

Score Symbols

This document defines the following score-specific symbols.

SymbolNameMeaning
SjudgeS_{\mathrm{judge}}Stepwise judgment score functionMaps an ordinary judgment grade to its base judgment score value.
ASnAS_nAverage judgment scoreAverage judgment score up to the nn-th ordinary judgment.
BBBase combo score mappingMaps a judgment grade and ordinary judgment count to combo score bounds and increment.
Θ\ThetaCombo score sequenceRunning combo score state recorded after ordinary judgments.
bmaxb_{\max}Maximum combo scoreUpper bound reachable by the combo score.
κ˚n\mathring{\kappa}_nBase compensation multiplierUnadjusted combo compensation multiplier up to the nn-th ordinary judgment.
κn\kappa_nCombo compensation multiplierAdjusted combo compensation multiplier up to the nn-th ordinary judgment.
CSnCS_nCombo bonusCombo bonus up to the nn-th ordinary judgment.
APnAP_nAP bonusAP bonus up to the nn-th ordinary judgment.
SnS_nScoreScore up to the nn-th ordinary judgment.
TSTSTotal scoreFinal ScoreV3 score.

Judgment Score

The stepwise judgment score function Sjudge:JRS_{\mathrm{judge}}: \mathcal{J} \to \mathbb{R} maps each ordinary judgment grade to a score value.

GradeJudgment score
ss1,000,0001{,}000{,}000
pp990,000990{,}000
gg600,000600{,}000
nn300,000300{,}000
bb150,000150{,}000
mm00

The average judgment score up to the nn-th ordinary judgment is:

ASn=i=1nSjudge(ξi)nAS_n = \frac{\sum_{i=1}^{n} S_{\mathrm{judge}}(\xi_i)}{n}

Combo Compensation Multiplier

The base combo score mapping B:J×N+R3B: \mathcal{J} \times \mathbb{N}^{+} \to \mathbb{R}^{3} maps a judgment grade ξ\xi and ordinary judgment count NN to:

  • bξ,Nb_{\xi,N}: combo base score upper bound
  • dξ,Nd_{\xi,N}: combo base score lower bound
  • aξ,Na_{\xi,N}: judgment increment

ScoreV3 uses the following mapping.

Judgment ξ\xiUpper bound bξ,Nb_{\xi,N}Lower bound dξ,Nd_{\xi,N}Increment aξ,Na_{\xi,N}
ssmin(max(0.24N,1),192)\min(\max(\lfloor 0.24N \rfloor, 1), 192)0022
ppmin(max(0.24N,1),192)\min(\max(\lfloor 0.24N \rfloor, 1), 192)0011
ggmin(max(0.16N,1),128)\min(\max(\lfloor 0.16N \rfloor, 1), 128)0000
nnmin(max(0.12N,1),96)\min(\max(\lfloor 0.12N \rfloor, 1), 96)0000
bbmin(max(0.10N,1),80)\min(\max(\lfloor 0.10N \rfloor, 1), 80)0000
mmmin(max(0.08N,1),64)\min(\max(\lfloor 0.08N \rfloor, 1), 64)0000

ScoreV3 maintains a running combo score state cc. The combo score sequence Θ\Theta records the initial state and the value of cc after ordinary judgments only:

Θ={θ0,θ1,,θN}\Theta = \{\theta_0, \theta_1, \cdots, \theta_N\}

At the beginning of a chart:

c=θ0=bs,Nc = \theta_0 = b_{s,N}

For the ii-th ordinary judgment, let cic_i^- be the value of cc after applying any preceding Lightning overflow events:

ci=c,cmin(max(c+aξi,N,dξi,N),bξi,N),θi=c.\begin{aligned} c_i^- &= c, \\ c &\leftarrow \min\left(\max\left(c + a_{\xi_i,N}, d_{\xi_i,N}\right), b_{\xi_i,N}\right), \\ \theta_i &= c. \end{aligned}

For a Lightning Miss with overflow Of>0O_f > 0, the overflow is applied to the same running combo score state:

cmax(cOf,0)c \leftarrow \max(c - O_f, 0)

This Lightning overflow update does not add an element to Θ\Theta and does not advance the ordinary judgment index ii. It also updates the combo score compensation state at the current ordinary judgment index, so an overflow can reduce the final score even when it occurs after the last ordinary judgment.

The maximum combo score is:

bmax=bs,Nb_{\max} = b_{s,N}

The base compensation multiplier up to the nn-th ordinary judgment is:

κ˚n=i=1nθinbmax\mathring{\kappa}_n = \frac{\sum_{i=1}^{n} \theta_i}{n \cdot b_{\max}}

Multiplier Adjustment

The maximum combo score recovery rate is:

amax=as,Na_{\max} = a_{s,N}

The predicted combo score sequence describes the maximum combo score attainable when processing an ordinary judgment:

θi=min(ci+amax,bmax)\theta_i^* = \min(c_i^- + a_{\max}, b_{\max})

The combo score recovery sequence is:

P={ρ0,ρ1,,ρN}P = \{\rho_0, \rho_1, \cdots, \rho_N\}

where ρi\rho_i is the minimum number of ordinary judgments required after the ii-th ordinary judgment to restore the combo score to its maximum value, excluding the ii-th ordinary judgment itself:

ρi=max(bmaxθiamax1,0)\rho_i = \max\left( \left\lceil \frac{b_{\max} - \theta_i}{a_{\max}} - 1 \right\rceil, 0 \right)

The combo score compensation sequence is:

Θ^={θ^0,θ^1,θ^2,,θ^N}\hat{\Theta} = \{\hat{\theta}_0, \hat{\theta}_1, \hat{\theta}_2, \cdots, \hat{\theta}_N\}

with θ^0=0\hat{\theta}_0 = 0. For i1i \ge 1:

θ^i={θ^i1,i+ρiN or θi=θi,(2(bmaxθi)amax(N+1i+ρi))(i+ρiN)2,otherwise.\hat{\theta}_i = \begin{cases} \hat{\theta}_{i-1}, & i + \rho_i \le N \ \text{or}\ \theta_i = \theta_i^*, \\ \dfrac{ \left(2(b_{\max} - \theta_i) - a_{\max}(N + 1 - i + \rho_i)\right)(i + \rho_i - N) }{2}, & \text{otherwise.} \end{cases}

When a Lightning overflow event occurs between ordinary judgments, the same compensation rule is evaluated at the current ordinary judgment index using the current value of cc after the overflow. This keeps the end-of-chart score loss consistent with ordinary combo score loss.

The adjusted combo compensation multiplier up to the nn-th ordinary judgment is:

κn=0.4+0.6max((i=1nθi)θ^n,0)nbmax\kappa_n = 0.4 + 0.6 \cdot \frac{ \max\left(\left(\sum_{i=1}^{n} \theta_i\right) - \hat{\theta}_n, 0\right) }{ n \cdot b_{\max} }

Combo Bonus

The combo judgment mapping C:JBC: \mathcal{J} \to \mathbb{B} maps ordinary judgment grades to Boolean values:

C(ξ)={1,ξ{s,p,g,n},0,otherwise.C(\xi) = \begin{cases} 1, & \xi \in \{s, p, g, n\}, \\ 0, & \text{otherwise.} \end{cases}

The current combo sequence is:

Γ={γ0,γ1,,γN}\Gamma = \{\gamma_0, \gamma_1, \cdots, \gamma_N\}

with:

γ0=0,γi={γi1+1,C(ξi)=1,0,C(ξi)=0.\begin{aligned} \gamma_0 &= 0, \\ \gamma_i &= \begin{cases} \gamma_{i-1} + 1, & C(\xi_i) = 1, \\ 0, & C(\xi_i) = 0. \end{cases} \end{aligned}

The running maximum combo sequence is:

Γ={γ0,γ1,,γN}\Gamma^* = \{\gamma_0^*, \gamma_1^*, \cdots, \gamma_N^*\}

with:

γ0=0,γi=max(γi,γi1).\begin{aligned} \gamma_0^* &= 0, \\ \gamma_i^* &= \max(\gamma_i, \gamma_{i-1}^*). \end{aligned}

The combo bonus up to the nn-th ordinary judgment is:

CSn=5000γnNCS_n = 5000 \cdot \frac{\gamma_n^*}{N}

AP Bonus

The AP bonus up to the nn-th ordinary judgment is:

APn={5000nN,i{1,2,,n}, ξi{s,p},0,otherwise.AP_n = \begin{cases} 5000 \cdot \dfrac{n}{N}, & \forall i \in \{1, 2, \cdots, n\},\ \xi_i \in \{s, p\}, \\ 0, & \text{otherwise.} \end{cases}

Lightning judgments, Lightning HP, and Lightning overflow do not change the AP bonus condition because they are not ordinary judgments.

Result Conditions

Lightning judgments do not change ordinary judgment counters and do not change ordinary combo counters. Therefore, a Lightning Miss can reduce the ScoreV3 total only through Lightning overflow applied to the combo score state; it does not affect All Perfect or All Combo conditions.

Total Score

The score up to the nn-th ordinary judgment is:

Sn=κnASn+CSn+APnS_n = \kappa_n \cdot AS_n + CS_n + AP_n

The total ScoreV3 score is:

TS=SNTS = S_N

The theoretical maximum score is 1,010,0001{,}010{,}000, achieved if and only if every ordinary judgment is Exact and no score is lost because of Lightning notes:

ξΞ, ξ=sandκN=1\forall \xi \in \Xi,\ \xi = s \qquad\text{and}\qquad \kappa_N = 1

Therefore, Lightning judgments do not all have to be Lightning Exact; the theoretical maximum is still attainable as long as Lightning Misses cause no score loss.