Skip to main content
osu! features four distinct game modes, each offering a unique rhythm gaming experience. All modes share the same beatmap format but interpret the hit objects differently through the ruleset system.

The Four Game Modes

osu!standard

Click circles, follow sliders, and spin spinners with mouse precision

osu!taiko

Hit the drum to the beat with centre and rim notes

osu!catch

Catch falling fruits with a moving catcher

osu!mania

Press keys in a vertical scrolling playfield

Ruleset Architecture

Each game mode is implemented as a Ruleset - a self-contained system that defines:
  • Hit Objects: The gameplay elements (circles, sliders, notes, etc.)
  • Scoring System: How performance is evaluated
  • Difficulty Calculation: Star rating and performance points
  • Input Handling: Controls and key bindings
  • Visual Presentation: Skinning and UI elements

Base Ruleset Class

All game modes inherit from the base Ruleset class located in osu.Game/Rulesets/Ruleset.cs:
public abstract class Ruleset
{
    public abstract DrawableRuleset CreateDrawableRulesetWith(IBeatmap beatmap, IReadOnlyList<Mod>? mods = null);
    public abstract ScoreProcessor CreateScoreProcessor();
    public abstract HealthProcessor CreateHealthProcessor(double drainStartTime);
    public abstract IBeatmapConverter CreateBeatmapConverter(IBeatmap beatmap);
    public abstract DifficultyCalculator CreateDifficultyCalculator(IWorkingBeatmap beatmap);
    public abstract PerformanceCalculator CreatePerformanceCalculator();
}

Ruleset Locations

Each game mode has its own dedicated namespace:
ModeNamespaceShort NameLegacy ID
osu!standardosu.Game.Rulesets.Osuosu0
osu!taikoosu.Game.Rulesets.Taikotaiko1
osu!catchosu.Game.Rulesets.Catchfruits2
osu!maniaosu.Game.Rulesets.Maniamania3
The short name is used in file paths, API endpoints, and internal references throughout the codebase.

Common Components

Hit Objects

All hit objects inherit from HitObject and implement game mode-specific behavior:
public abstract class HitObject
{
    public double StartTime { get; set; }
    public IList<HitSampleInfo> Samples { get; }
    public abstract Judgement CreateJudgement();
    protected abstract HitWindows CreateHitWindows();
}

Judgements

Judgements determine scoring results:
  • Great/Perfect: Full points
  • Good/Ok: Reduced points
  • Meh: Minimal points
  • Miss: No points, breaks combo

Mods

All game modes support mods that alter gameplay:
  • Difficulty Reduction: Easy, No Fail, Half Time
  • Difficulty Increase: Hard Rock, Sudden Death, Double Time, Hidden, Flashlight
  • Conversion: Mode-specific gameplay modifiers
  • Automation: Auto, Relax, Autopilot (mode-dependent)
  • Fun: Visual and audio effects

Beatmap Conversion

Beatmaps are created for one mode but can be played in others through beatmap conversion:
public override IBeatmapConverter CreateBeatmapConverter(IBeatmap beatmap) 
    => new OsuBeatmapConverter(beatmap, this);
Each ruleset’s converter transforms hit objects:
  • Circles → Mode-specific single hit objects
  • Sliders → Mode-specific sustained/stream objects
  • Spinners → Mode-specific bonus/special objects
Native beatmaps (created specifically for a mode) generally provide better gameplay experiences than converted beatmaps.

Hit Windows and Timing

Each mode defines timing windows for judgements based on Overall Difficulty (OD):
protected override HitWindows CreateHitWindows() => new OsuHitWindows();
Hit windows typically use difficulty ranges:
  • OD 0: Most lenient timing (largest windows)
  • OD 5: Medium timing
  • OD 10: Strictest timing (smallest windows)

Difficulty Calculation

Each mode implements its own difficulty calculator that evaluates:
  1. Aim/Reading Skills (varies by mode)
  2. Rhythm Complexity
  3. Pattern Difficulty
  4. Speed Requirements
The result is a star rating (0-10+ stars) and performance points (pp) system.

Performance Metrics

All modes track:
  • Score: Total points earned
  • Accuracy: Percentage of perfect hits
  • Combo: Consecutive hits without missing
  • Rank: Letter grade (SS, S, A, B, C, D)
  • Performance Points: Skill-based rating

Next Steps

Explore each game mode in detail:

Build docs developers (and LLMs) love