Skip to content

Judgment Definitions

This document defines the ordinary judgment model consumed by Scoring V3 and Accuracy V2.

Notation Summary

SymbolNameMeaning
δ\deltaHit timing biasTime difference between a player action and its ordinary judgment point.
J\mathcal{J}Ordinary judgment setSet of ordinary judgment grades, including the default Miss element m=m = \varnothing.
JJJudgment mappingFunction that maps a hit timing bias to an ordinary judgment grade.
Σ\SigmaOrdinary judgment point sequenceOrdered sequence of ordinary judgment points in a chart.
NNOrdinary judgment countLength of Σ\Sigma in this specification. Lightning notes are excluded.
Δ\DeltaHit offset sequenceOrdered sequence of hit timing biases.
Ξ\XiOrdinary judgment sequenceOrdered sequence of ordinary judgment results.
Jf\mathcal{J}_fLightning judgment setDedicated judgment set for Lightning notes.
Φ\PhiLightning judgment sequenceOrdered sequence of Lightning judgment results.
FsF_sLightning Exact countNumber of Lightning Exact results.
FmF_mLightning Miss countNumber of Lightning Miss results.
HfH_fLightning HPLightning-specific reserve consumed by Lightning Miss results.
OfO_fLightning overflowLightning Miss damage that exceeds remaining Lightning HP.

Terms

An ordinary note is a Dew, Drizzle, or Raindash Note. Ordinary notes produce ordinary judgments.

An ordinary judgment is a judgment result produced by an ordinary note. Ordinary judgments form the sequence Ξ\Xi and are used by ScoreV3, AccV2, ordinary combo, All Perfect, and All Combo conditions.

Lightning Notes produce Lightning judgments. Lightning judgments form the separate sequence Φ\Phi and are excluded from Ξ\Xi and the ordinary judgment count NN.

An ordinary judgment point is a reference time used to judge a specific ordinary player action.

A hit timing bias is the time difference, in milliseconds, between the player action and the ordinary judgment point. Negative values indicate early hits; positive values indicate late hits.

A judgment grade is a union of continuous time intervals on the real line. For a judgment grade ll:

l=i=1nIil = \bigcup_{i = 1}^{n} I_i

where each IiI_i is a continuous interval on R\mathbb{R}.

The ordinary judgment set J\mathcal{J} contains all ordinary judgment grades and the default element m=m = \varnothing, which represents no produced judgment. Distinct judgment grades do not overlap, and the union of ordinary hit windows is continuous.

Judgment Windows

Milthm uses the following ordinary judgment windows.

GradeNameHit timing bias intervalWindow width
ssExact[35,35][-35, 35] ms7070 ms
ppPerfect[70,35)(35,70][-70, -35) \cup (35, 70] ms7070 ms
ggGreat[105,70)(70,105][-105, -70) \cup (70, 105] ms7070 ms
nnGood[140,105)(105,140][-140, -105) \cup (105, 140] ms7070 ms
bbBad[155,140)(140,155][-155, -140) \cup (140, 155] ms3030 ms
mmMiss\varnothingNot applicable

The judgment mapping J:RJJ: \mathbb{R} \to \mathcal{J} is:

J(δ)={j,jJ(δj),m,otherwise.J(\delta) = \begin{cases} j, & \exists j \in \mathcal{J} \left(\delta \in j\right), \\ m, & \text{otherwise.} \end{cases}

Judgment Sequence

Let the sequence of ordinary judgment points be:

Σ={σ1,σ2,,σN}\Sigma = \{\sigma_1, \sigma_2, \cdots, \sigma_N\}

where Σ\Sigma is finite and non-decreasing. In this document, the ordinary judgment count NN is the length of this sequence. Lightning notes are excluded from NN.

The hit offset sequence is:

Δ={δ1,δ2,,δN}\Delta = \{\delta_1, \delta_2, \cdots, \delta_N\}

The ordinary judgment sequence is:

Ξ={ξ1,ξ2,,ξN},ξi=J(δi)\Xi = \{\xi_1, \xi_2, \cdots, \xi_N\}, \qquad \xi_i = J(\delta_i)

Lightning Statistics

Lightning notes use a dedicated statistic judgment set:

Jf={fs,fm}\mathcal{J}_f = \{f_s, f_m\}

where fsf_s is Lightning Exact and fmf_m is Lightning Miss.

Let the Lightning judgment sequence be:

Φ={ϕ1,ϕ2,,ϕM},ϕkJf\Phi = \{\phi_1, \phi_2, \cdots, \phi_M\}, \qquad \phi_k \in \mathcal{J}_f

Lightning statistics use the following state variables.

SymbolNameMeaningInitial value
FsF_sLightning Exact countCumulative number of Lightning Exact results.00
FmF_mLightning Miss countCumulative number of Lightning Miss results.00
HfH_fLightning HPReserve value that absorbs Lightning Miss damage.256256
OfO_fLightning overflowOverflow damage from the current Lightning Miss after Lightning HP is exhausted.00

At the beginning of a chart:

Fs=0,Fm=0,Hf=256F_s = 0, \qquad F_m = 0, \qquad H_f = 256

Lightning HP is capped at 256256. Ordinary Exact and Perfect judgments recover Lightning HP:

Hf{min(Hf+2,256),ξi=s,min(Hf+1,256),ξi=p,Hf,otherwise.H_f \leftarrow \begin{cases} \min(H_f + 2, 256), & \xi_i = s, \\ \min(H_f + 1, 256), & \xi_i = p, \\ H_f, & \text{otherwise.} \end{cases}

Lightning Exact does not recover Lightning HP. For each Lightning judgment:

fs:FsFs+1,fm:FmFm+1.\begin{aligned} f_s &: F_s \leftarrow F_s + 1, \\ f_m &: F_m \leftarrow F_m + 1. \end{aligned}

Each Lightning Miss deals 6464 Lightning HP damage. Let HfH_f^- be the Lightning HP before the damage is applied. The overflow damage is:

Of=max(64Hf,0)O_f = \max(64 - H_f^-, 0)

and the remaining Lightning HP is:

Hfmax(Hf64,0)H_f \leftarrow \max(H_f^- - 64, 0)

If Of>0O_f > 0, the overflow is applied to the ScoreV3 combo score state and can reduce the final score. See Scoring V3.

Lightning judgments are counted only in Lightning-specific counters and are not added to the ordinary judgment sequence Ξ\Xi.

Lightning judgments, Lightning HP, and Lightning overflow do not affect All Perfect or All Combo conditions. These conditions are evaluated only from ordinary judgment counters.

When a Lightning Note and ordinary notes are judged at the same time, the Lightning Note is judged after the ordinary notes. If a Drizzle Note is already active, the Lightning judgment does not break the active Drizzle.