github ppy/osu 2022.723.0

latest releases: 2022.810.0, 2022.731.1, 2022.731.0...
17 days ago

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

Code Quality

  • Use more correct json casing in APIScoresCollection (#19226 by @peppy)
  • Remove nullable disable annotation in the mods. (#19235 by @andy840119)
  • Change carousel terminology to not use Children / InternalChildren (#19268 by @peppy)
  • Cleanup pass on FPSCounter (#19279 by @peppy)
    • This class got a bit messy over multiple iterations. Also rate limits the sprite text updates to reduce any potential performance overhead.


Add background beatmap processing (#19272 by @peppy)

A stepping stone towards better storage/processing of star ratings locally. The focus here is on the invalidation flow when difficulty algorithm changes occur, so I didn't put too much thought into the BeatmapInfo / realm storage of the star rating.

This will nuke all local beatmaps' difficulties once. Seems like a good move to get everything in a consistent state. This will also handle legacy issues like "length" not being calculated, for users with very old databases.

I haven't tested with a large database yet, so feedback on how well this works is appreciated! There's no visible progress just yet, so if you notice nothing, that's probably a good thing. Note that it will automatically pause during gameplay.


Fix editor clap/finish buttons being ordered against expectations (#19236 by @peppy)

Weirdly was not brought to our attention until now!

Fix slider velocity not using previous value if slider is not adjacent (#19239 by @peppy)



Dsplay toasts on beatmap/skin save (#19243 by @LukynkaCZE)

Adds missing visual feedback when saving.


Smaller changes

  • Fix editor timeline zoom rate being too slow for longer beatmaps (#19278 by @Cwazywierdo)
  • Fix timeline alt+scroll zoom not correctly zooming to current mouse position (#19294 by @peppy)
  • Fix timeline zoom focus point when using zoom buttons (#19296 by @smoogipoo)



Fix failed replays showing higher score than they should (#19263 by @frenzibyte)

Gameplay (osu!)

Adjust default follow circle animations to feel nicer (#19128 by @peppy)



Smaller changes

  • Remove non-overlapping velocity buff from aim difficulty (#19004 by @apollo-dw)

Gameplay (osu!taiko)

Add basic touch support for osu!taiko (#17200 by @hongaaronc)

This is a first pass implementation of touch support for osu!taiko. Eventually we plan to give the user a lot more control over touch input customisation, but hopefully this will suffice until that point.

Please give it a go and shoot any feedback you have!


Performance point balance changes (#19181 by @Lawtrohux)

Changes included are:

  • Nerf the Hidden global multiplier to increase the gap between EZHD and HD only scores.
  • Addition of an EZ global multiplier nerf, as well as a difficulty PP nerf.
  • Decrease the miss penalty, as combo scaling is not present in taiko.
  • Increase the weight Accuracy has on Difficulty PP.
  • Lower Accuracy and great hit window scaling, and split out length-bonus to allow for a new slight HDFL bonus to accuracy scaled by length.
  • Removal of the NF multiplier to prevent sandbagging against the <50% end-fail mechanic

Replicate osu!(stable)'s hit target position with "Classic" mod (#17622 by @frenzibyte)


Remove score multiplier on difficulty-increasing mods with customised settings (#19208 by @frenzibyte)

This is a first step in balancing the recently exposed leaderboards. It will allow us to fix cases of users applying DT with a rate of 1.01x and still getting the full multiplier, as one example.

We'll continue to iterate on this (and address other mods like "Relax").


Fix editing a queued beatmap sometimes opening to the wrong selection (#19234 by @Cwazywierdo)

Smaller changes


Highlight perfect slider tick/end values in beatmap info leaderboards (#19244 by @frenzibyte)

Replacing the existing maximum count display and moves that to a tooltip that displays when hovering over the statistic.

Smaller changes


Reduce Bindable allocations in hitobject classes via lazy initialisation (#19225 by @frenzibyte)

Offers a roughly 50% improvement in performance and memory usage when creating osu! hit objects. Should be most noticeable in batch difficulty calculation.




Add additional SFX to the results screen (#19300 by @nekodex)

Adds panel appearance and transition sounds, score rolling/ticking effects and additionally some dynamic panning to make the results screen a bit more interesting.

Dynamic panning also affecting the AccuracyCircle / ranking SFX was a side-effect of implementation, but it feels kinda cool so I left it in?

Song Select

Show update button in beatmap carousel when beatmaps have online changes (#19230 by @peppy)

Comes with a few caveats:

  • Currently only shows when there are actual .osu file changes (feature parity with stable). Eventually we'd want to show this for any changes (ie. if only the background has changed), but doing so requires a beatmap set level hash. I have a forward plan for making this happen, but it involves having individual file hashes stored and communicated client-server. Note that even with this limitation, it will still update all files in the beatmap (better than stable) because it's performing a full re-download.
  • Any already imported beatmaps will not have a LastOnlineUpdate set, therefore will not show available updates. At some point all beatmaps with a null value will be queried in the background to resolve this. Not a huge deal IMO.
  • New imports are using the local cached beatmap info, which means in the super rare edge case that a beatmap is unranked and changed, it may be in an incorrect state even though its realm status shows that it's consistent. I've left a note about this in BeatmapUpdater but not sure it's worth acting on, for now.

Add ability to sort and filter by ranked date (#19233 by @peppy)

For this to work, the game will need to perform some background data fetching. It might take some seconds or minutes depending on the size of your library.

Smaller changes


  • Fix changelog overlay tests failing due to missing CreatedAt date (#19265 by @frenzibyte)
  • Fix UpdateBeatmapSetButton intermittent test failure (#19269 by @peppy)
  • Fix one more case of referencing old mod select overlay in tests (#19298 by @frenzibyte)


Increase responsiveness of osu! logo triangles to the beat (#19264 by @TacoGuyAT)

video pending

Add game-side FPS counter (#19250 by @peppy)

This is a first implementation to build off. Figure it's easier to get this out as a "better than what we had" then build individual pieces into it.

  • Frame time is currently displayed similar to stable (actual time between frames, not cpu time). Will probably change this to match the o!f display, but that requires more pieces to be exposed from the framework side.
  • Tooltip is very temporary. I plan to replace it with the actual FPS display expanding out to a larger size to reveal more information.

Smaller changes

  • Fix FPS counter not being wide enough to show large fps numbers (#19273 by @peppy)
  • Fix draw FPS being inaccurate due to using ElapsedFrameTime (#19274 by @peppy)
  • Avoid using RollingCounter in fps counter (#19277 by @peppy)


Full Changelog: 2022.719.0...2022.723.0

Don't miss a new osu release

NewReleases is sending notifications on new releases.