Gameplay

Sub-millisecond timing windows, combo mechanics, hold notes, and groove gauge rules.

UPDATED Sep 23, 2026

Rhythmio evaluates note inputs each frame using high-resolution hardware timestamps from performance.now(). Because the engine processes notes in strict chronological order per lane, input responsiveness stays uniform across varying display refresh rates.

The engine also supports clean ghost tapping. Pressing keys when no note is within the hit range produces no penalty and will not consume or miss upcoming notes.

Judgement windows

Each note receives a judgement rating based on the absolute time difference between your key press and the target note timestamp.

JudgementTiming windowScore weightCombo effect
PERFECT+±20 ms1.00Increments combo
PERFECT±42 ms0.95Increments combo
GREAT±75 ms0.70Increments combo
GOOD±110 ms0.40Increments combo
BAD±140 ms0.15Resets combo to 0
MISSBeyond ±140 ms / Cutoff +160 ms0.00Resets combo to 0

Notes that pass more than 160 ms beyond the judgement line without a key press register automatically as a late MISS.

Hold notes

Hold notes require pressing on the initial note head and sustaining the key until the tail passes the judgement line.

  • Releasing a hold key more than 120 ms before the tail causes a hold break. The initial judgement converts to a MISS and breaks your current combo.
  • Sustaining an active hold generates internal ticks every 100 ms. Each tick restores 0.02 points to the groove gauge. Hold ticks do not add extra combo or raw score points, which keeps the maximum possible score capped at 1,000,000.

Groove gauge

The groove gauge begins at 100 points. If the gauge reaches 0, the run ends immediately in a stage failure unless the No Fail modifier is active.

  • PERFECT+ and PERFECT hits replenish the gauge. GREAT and GOOD provide smaller increments.
  • BAD and MISS judgements drain the gauge.
  • Enabling the Hard Gauge modifier reduces hit recovery by more than half (0.45 multiplier) and amplifies drain penalties (2.2 multiplier).
  • In RYO Arena multiplayer matches, reaching 0 gauge locks your match result as FAILED at that timestamp. The stage continues rendering so you can finish the song, but your submitted match statistics stay frozen at the moment of failure.

Scoring formula

Every completed chart is scored on a 1,000,000 point scale divided between base accuracy and combo continuity:

  • Accuracy component (up to 900,000 points): calculated from the weighted sum of all judgements divided by the total note count.
  • Combo component (up to 100,000 points): calculated from your highest combo achieved during the run divided by the total note count.
  • Final score: calculated as Math.floor(baseAccuracyScore + comboScore).