1
0
mirror of https://github.com/ppy/osu.git synced 2024-05-15 13:00:20 +08:00
10 Anatomy of a slider
Dean Herbert edited this page 2023-11-02 16:54:15 +09:00

Sliders are quite complex objects, and behave differently over different implementations. This page aims to track the current state of sliders with the end goal of unifying/improving behaviour.

Portions which differ on lazer are highlighted in bold.

stable lazer
Head
Judgement Hit window is equal to a hit50 Act as a normal hit circle with full judgement range
Scoring hit=30
miss=0
hit=300(Great)/100(Good)/50(Meh) + combo_bonus
miss=0
Combo hit=+1
miss=reset
Tick
Judgement At precise point in time
Scoring hit=10
miss=0
hit=30(LargeTick) + combo_bonus
miss=0
Combo hit=+1
miss=reset
Repeat
Judgement At precise point in time
Scoring hit=30
miss=0
hit=30(LargeTick) + combo_bonus
miss=0
Combo hit=+1
miss=reset
Tail
Judgement Occurs exactly min(36, slider_duration / 2)ms before end of slider Occurs at any point in the last 36ms of the slider
Scoring hit=300/100/50 depending on tick count
miss=0
hit=10(SmallTick) + combo_bonus
miss=0
Combo hit=+1
miss=reset
hit=0
miss=0

Summarising the current differences in slider behaviour which are not unanimously accepted, in order of importance:

  • Tail doesn't give combo on lazer. This leads to max combo discrepancies on all beatmaps. (In addition, tail gives a combo even on a miss with classic mod applied)
  • Combo bonus is added to ticks/repeats where it wasn't on stable. This can lead to score discrepancies based on hit ordering.
  • Ticks give less score on stable when compared to lazer. Not sure how much this matters.