Skip to content

Scoring system

Rodrigo Alfonso edited this page Nov 24, 2024 · 20 revisions

This is just an approximation used in piuGBA. Real PIU is slightly different!

Timing windows

Provided that a frame is 16.73322954 ms long, these are the timing windows the game uses:

  • [0, 2) frames: PERFECT
  • [2, 4) frames: GREAT
  • [4, 6) frames: GOOD
  • [6, 8) frames: BAD
  • >= 8 frames: MISS

The windows are the same if the player presses a note before or after its time.

Combo

  • Each note adds 1 to the current combo.
  • Notes with more than one arrow (jumps) only count as 1.
  • GOODs don't add to the combo.
  • BADs and MISSes break combo.
  • Hold notes create only PERFECTs or MISSes, one per tick.
    • The amount of ticks depends on the song part, specifically in the TICKCOUNTS segment.
    • There's always one tick at the arrow's head.

Lifebar

  • Life is a number between [-13, 100].
  • Initial life = 60.
  • If life is below -13, a stage break is triggered.
  • Each judgement increases or decreases life:
    • PERFECT: +1.5
    • GREAT: +1
    • GOOD: 0
    • BAD: -6
    • MISS: -12

Points

Base points per note:

  • PERFECT: 1000
  • GREAT: 500
  • GOOD: 100
  • BAD: -200
  • MISS: -500

If your combo is > 50 and you got a perfect or great, add 1000.

Dance grade

percent = (
  perfects * 1.2
  + greats * 0.9
  + goods * 0.6
  - bads * 0.45
  - misses * 0.9
  - longNotes * 0.2
  + maxCombo * 0.05
) / totalNotes

if (percent >= 0.95 && goods + bads + misses == 0)
  "SS"
else if (percent >= 0.95 && misses == 0)
  "S"
else if (percent >= 0.95)
  "A"
else if (percent >= 0.90)
  "B"
else if (percent >= 0.85)
  "C"
else if (percent >= 0.75)
  "D"
else
  "F"
Clone this wiki locally