Skip to content

Add support for grouping by keys in song select for osu!mania#37285

Merged
peppy merged 2 commits intoppy:masterfrom
bdach:mania-key-count-grouping
Apr 15, 2026
Merged

Add support for grouping by keys in song select for osu!mania#37285
peppy merged 2 commits intoppy:masterfrom
bdach:mania-key-count-grouping

Conversation

@bdach
Copy link
Copy Markdown
Collaborator

@bdach bdach commented Apr 13, 2026

final.mov

Of note:

  • Supports both native beatmaps and converts
  • Supports key mods (changing key mods will trigger song select refilter when key count grouping is engaged)
  • The option to group by keys is only visible when mania ruleset is active
  • If the user selects key count grouping and then switches to another ruleset, song select will fall back to no grouping, but this change will not be written back to config. Only the user changing the grouping mode manually will reflect in config changes. This is done so that key grouping persists across ruleset changes, and this even survives game restarts.

I've only done some light behaviour testing on this because this feature needs a lot of subjective shot calls and I don't want to commit too deep before I get a temperature check on the shot calls I made here.

In particular some performance profiling of 7de8f70 may be warranted.

bdach added 2 commits April 13, 2026 10:48
See ppy#35207

Of note:

- Supports both native beatmaps and converts
- Supports key mods (changing key mods will trigger song select
  refilter when key count grouping is engaged)
- The option to group by keys is only visible when mania ruleset is
  active
- If the user selects key count grouping and then switches to another
  ruleset, song select will fall back to no grouping, but this change
  will not be written back to config. Only the user changing the
  grouping mode manually will reflect in config changes. This is done so
  that key grouping persists across ruleset changes, and this even
  survives game restarts.
Copy link
Copy Markdown
Member

@peppy peppy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works good 👍

Comment on lines +419 to +421
// Ordering important - base call must run *after* the above bindings
// because the bindings set up `Items`, and the base call is responsible for calling `GenerateItemText()`.
base.LoadAsyncComplete();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This puts me on the edge of my seat but sure.

@peppy peppy merged commit 8050ee3 into ppy:master Apr 15, 2026
8 of 10 checks passed
@github-project-automation github-project-automation bot moved this from Pending Review to Done in osu! team task tracker Apr 15, 2026
@bdach bdach deleted the mania-key-count-grouping branch April 15, 2026 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants