github ppy/osu 2022.731.0

latest releases: 2022.810.2, 2022.810.1, 2022.810.0...
13 days ago

Thanks for following along! This is a tagged release (2022.731.0). For more information check out the osu! changelog page and dev blog.

Code Quality

  • Log beatmap difficulty retrieval failures during score calculation (#19367 by @smoogipoo)
  • Improve log output for too-many-scheduled-tasks (ppy/osu-framework#5322 by @peppy)
  • Remove no longer necessary API score models (#19379 by @frenzibyte)
  • Remove nullable disable annotation in mods for catch ruleset. (#19249 by @andy840119)
  • Move LegacyComboCounter to osu.Game.Skinning (#19426 by @LeNitrous)
  • Remove nullable disable annotation in mods for mania ruleset. (#19418 by @andy840119)
  • Remove nullable disable annotation in mods for taiko ruleset. (#19419 by @andy840119)
  • Add more comprehensive xmldoc for beatmap model classes (#19433 by @peppy)
    • In an effort to create a terminology glossary for all beatmap-related classes, since we have a lot of them. Check it out on the dev wiki.
  • Remove unused RulesetStore from BeatmapManager constructor (#19435 by @peppy)


Fix multiple issues with beatmap updating (#19378 by @peppy)

With the introduction of updating beatmaps in the last release, some users noticed some edge cases where the update process was not working (or working "too well", and showing the button even after an update was applied). This was largely due to the beatmap metadata being too cached locally, and has been resolved by always requesting the most up-to-date metadata in non-batch import scenarios.

This also fixes some beatmap-related attributes not being transferred, like "date added" and any scores that were attached to a beatmap that was part of an updated set, but not modified itself.

This also changes the process to only leave soft-deleted copies of beatmaps which actually had modifications.

Move beatmap collections to realm (#19430 by @peppy)

This brings collections over to our new client-side database, doing away with the legacy format. Visually this shouldn't be much different, but internally it is a lot more efficient and reliable.

Your existing collections will be automatically migrated on startup from collection.db, but if anything goes wrong that file will remain.

Add collection transfer logic to beatmap update flow (#19431 by @peppy)

  • For beatmap sets where every difficulty was in a collection, any new difficulties will also be added to that collection.
  • For beatmap sets where only some difficulties were in a collection, updated versions of those beatmaps will also be added to the same collections.


  • Fix editor summary timeline not responding to kiai changes correctly (#19457 by @peppy)


Add osu!stable style circular song progress for legacy skins (#19408 by @LeNitrous)

Finally, the "pie" style of progress that many have requested has returned to legacy skins. Note that this is now the default display for legacy skins. If you would like the full display style back, you can add it using the skin layout editor (accessible from settings or via Ctrl+Shift+S).


Add ability to make cursor show even during touch input (#19389 by @peppy)

A long-time request, you can now make the cursor always show, even on touch devices. This can also be used as a workaround for tablets reporting touch inputs, for those that have recently had issues with cursor unexpectedly disappearing on desktop devices.

I completely disagree with this from a UX perspective, but it's come up so often that I figure we should just let users bone themselves.


  • Fix osu!taiko flashlight positioned incorrectly on gameplay restart (#19466 by @naipofo)


Attempt to fix spectator sending too slow for users with high latency (#19451 by @peppy)

In the previous release I made a change which on the surface wasn't really looking to do much (making all requests blocking in the spectator client), but for users with very high latency (500ms+) this could result in the client not being able to send data fast enough to the server. This was noticed especially by users using dodgy VPNs.

Smaller changes

  • Fix players potentially disappearing in spectator list after restart (#19363 by @frenzibyte)
  • Fix beatmap updater potentially using outdated local metadata (#19440 by @peppy)


Fix beatmap overlay stats showing values with current mods incorrectly applied (#19299 by @Cwazywierdo)

Display exclamation icon for online scores with unprocessed PP (#19343 by @frenzibyte)


Refactor FPSCounter to not use scheduled tasks (#19374 by @peppy)

Fixes an edge case where the fps counter would add undue overhead while being displayed for a longer period.

Fix calls to GetWorkingBeatmap invalidating cache too often (#19371 by @peppy)

We found out that song select wasn't caching beatmaps as much as we originaly designed it to due to a recent change. This should grealy improve performance at song select when rapidly changing between beatmaps.


  • Add error logging for background processing failures (#19324 by @peppy)
  • Fix OsuSliderBar throwing on negative draw width (#19345 by @frenzibyte)
  • Avoid potential realm fetch after disposal in StatisticsPanel (#19393 by @peppy)

Song Select

Fix star ratings which are still being calculated showing as "-1" at song select (#19373 by @peppy)

osu! 2022-07-25 at 06 48 38

Smaller changes

  • Maintain sort stability by using carousel item ID as a fallback (#19399 by @frenzibyte)


  • Fix background beatmap processor resetting star ratings in tests (#19312 by @frenzibyte)
  • Disable timeline test for now (#19368 by @smoogipoo)
  • Fix intermittent timeline zoom test failures (#19377 by @frenzibyte)
  • Avoid leaving left-over files after test run completes (#19392 by @peppy)
  • Don't show audio playback issue notification if debugger is attached (#19402 by @peppy)
    • I've hit this countless times recently when debugging during the startup procedure.
  • Fix potential test failure if scores are added to the beatmap which is subsequently removed (#19411 by @peppy)
  • Add realm refresh calls to fix intermittent test failures on new update tests (#19432 by @peppy)
  • Reduce calls to LoadTrack by implicitly running on test/dummy classes (#19441 by @peppy)
  • Fix intermittent HUD tests (#19443 by @smoogipoo)
  • Fix potential test failures due to Setup/SetUpSteps ordering (#19453 by @smoogipoo)
  • Move spectator begin/end playing to SubmittingPlayer (#19442 by @smoogipoo)
  • Add constrained assertions (ppy/osu-framework#5323 by @smoogipoo)
  • Ensure realm is in a good state before asserts in TestSceneFilterControl (#19454 by @peppy)
  • Fix potential nullref in TestSceneAutoplay check steps method (#19469 by @frenzibyte)


Implement mod preset panels for mod select overlay (#19287 by @bdach)

This is the start of a series of pulls whose end goal is to add a mod preset column to the mod select overlay, as foreshadowed by the designs on figma.

Not available in game yet, but a taste of what's coming soon.


Add ability to copy URLs by right-clicking external link button (#19375 by @novialriptide)

Add Toast notification to when copying a URL (#19410 by @novialriptide)


Smaller changes

  • Implement basic appearance of mod preset column (#19349 by @bdach)
  • Update more places to support displaying unprocessed PP placeholder (#19372 by @frenzibyte)
  • Always allow selecting the top-most button in popups using the select binding (#19400 by @peppy)
    • Defaulting to the "OK" type still seems correct, but let's allow selecting the top-most failing that.


Add confirmation dialog when about to discard a playlist (#19455 by @peppy)

The confirmation will only show if items have been added to the playlist.

Add low battery warning for desktop platforms (#19471 by @Susko3)

Was already present on mobile, but now also shows for desktop users at 25% or lower battery charge.

New Contributors

Full Changelog: 2022.723.0...2022.731.0

Don't miss a new osu release

NewReleases is sending notifications on new releases.