What's Changed
- Fix sample set index entry box crashing on bad input by @bdach in #36390
- Specialise mod setting hover text in song select scoreboard by @linusgenz in #36391
- Fix changing combo colours in beatmap without custom samples opening new sample set popover by @bdach in #36400
- Fix skin saving crashing if hashable files are not present by @peppy in #36401
- Fix carousel items becoming incorrectly selected due to bindable leakage by @peppy in #36414
- Fix random selection not showing selection when all groups are collapsed by @peppy in #36404
- Standardise ruleset error logging to always include exception in logs by @peppy in #36423
- Fix beatmap samples with incorrect 1 sample set suffix in the filename being shown in setup tab as belonging to custom sample bank 1 by @bdach in #36425
- Add localisation support for
PlaylistsSongSelectV2by @diquoks in #36410 - Update settings to use new "form" style controls by @frenzibyte in #36193
- Add envvar to disable error reporting by @peppy in #36426
- Mod Select: Support numeric row hotkeys to quick select Presets by @iwa in #36392
- Fix broken percentage formatting in form slider bars by @bdach in #36435
- Fix legacy health display using incorrect bulge texture when at low HP by @peppy in #36436
- Locally schedule beatmap skin change callbacks to ensure they fire at valid times by @bdach in #36439
- Work around flaky
TestSceneFirstRunSetupOverlaytests by @bdach in #36438 - Fix score tooltips being displayed when hovering freemods status bar on
PlaylistsSSV2by @diquoks in #36413 - Move Traceable to difficulty increasing mods section by @stanriders in #35500
- Fix previous usernames display showing underneath other elements by @peppy in #36471
- Fix logs failing to export after multiple failure attempts on file locks by @peppy in #36469
- Fix panel expansion not being set on initial song select load by @eeliogata in #36456
- First pass adjustments to new settings design by @peppy in #36486
- Fix dropdown margins and animations being weird by @peppy in #36499
- Fix "ALL MODS" display not displaying in new playlist song select by @peppy in #36500
- Fix
FormCheckboxplaying sounds twice by @peppy in #36504 - Add server-side models for ranked play by @smoogipoo in #36498
- Localise "Custom sample sets" caption in
FormSampleSetChooserdropdown by @MayoCollector in #36511 - Update iOS app icon to iOS 26 Liquid Glass variants by @TimOliver in #36510
- Fix star ratings sometimes not updating after editing a beatmap by @peppy in #36516
- Localise "Show storyboard" in
Editorby @YHSabc233 in #36517 - Make Hidden and Freeze Frame mods incompatible by @bdach in #36515
- Make Difficulty Adjust and Target Practice mods incompatible by @bdach in #36524
- Fix multiplayer team display becoming inconsistent by @smoogipoo in #36523
- Fix hitsounds becoming loud in editor after entering setup section by @bdach in #36512
- Fix some text boxes no longer having borders by @bdach in #36526
- Add localisation support for
DirectorySelectorby @diquoks in #36371 - Updated iOS 26 app icon assets with newer version by @TimOliver in #36535
- Fix initial solo gameplay leaderboard position and color by @Joehuu in #36496
- Fix unobserved timeouts still showing to user by @peppy in #36536
- Add skin cycling with shortcuts for next and previous skin by @ArijanJ in #36387
- Invert quick play queue backgrounding and canceling flow by @smoogipoo in #36247
- Fix two mod presets having key binding of
1by @voidstar0 in #36563 - Fix revert to default button not resizing correctly after changing languages by @peppy in #36580
- Implement sorting and display styles for currently online users by @smoogipoo in #33649
- Localise "running" in
DigitalClockDisplayby @nnfz in #36589 - Fix star rating no longer updating from mod setting changes after re-entering song select by @bdach in #36601
- Localise some strings on SSV2 by @diquoks in #36591
- Change difficulty range slider colors to match star rating more closely by @mmiddlezong in #36564
- Localize "Effect, Master, Music" in
VolumeOverlayby @nnfz in #36594 - Localise some more strings in settings by @diquoks in #36590
- Fix "copy labels from issues" workflow not having the appropriate permissions to do what it claims to do by @bdach in #36602
- Make grouped friend notifications Transient and not important by @SupDos in #36620
- Fix seeking to previous bookmark not working when song is playing by @Joehuu in #36616
- Improve handling of account registration errors by @bdach in #36600
- Localise "lounge" & "quick play" in
ButtonSystemby @diquoks in #36220 - Fix local beatmap metadata not being cleared when previously selected beatmap is online by @Joehuu in #36632
- Allow binding left/right modifier keys separately for gameplay bindings by @failaip12 in #36585
- Improve adjusting mods settings values with keyboard by @diquoks in #36090
- Add info about damage dealt to ranked play user state by @minetoblend in #36627
- Update production endpoints in an attempt to fix Russian player connections by @peppy in #36635
- Update framework by @peppy in #36637
- Perform extra checks when loading rulesets by @bdach in #36641
- Refactor hit result methods on
Rulesetby @bdach in #36639 - Refactor UpdateableTeamFlag for use on team overlay by @LiquidPL in #36286
- Add user role to
MultiplayerRoomUserby @bdach in #36652 - Fix corner radius for user tag glow by @netineko in #36659
- Add explanations for scoring mode used in ranked & total score tooltips by @bdach in #36663
- Preserve bookmarks when creating a new difficulty from scratch by @64ArthurAraujo in #36675
- Fix extra lives in Easy mod potentially getting reapplied during gameplay by @bdach in #36678
- Restore previous beatmap when leaving scoped mode by @LiquidPL in #36582
- Use directory of last-selected sample as initial directory in sample set add controls by @bdach in #36680
- Fix osu! editor composer scale handles not updating correctly when selected object is changed by @bdach in #36681
- Prevent tagging beatmaps when played with conversion mods by @imvanni in #36684
- Fix legacy key counter not using skin's font by @peppy in #36687
- Add ability for
LoadingLayerto block all keyboard input by @peppy in #36695 - Migrate playlist freestyle select screen to use
SongSelectV2by @peppy in #36694 - Migrate multiplayer freestyle select screen to use
SongSelectV2by @peppy in #36696 - Adjust nightcore sample playback to not stop randomly and be closer to stable by @bdach in #36702
- Fix reversing straight perfect curve sliders positioning them weirdly by @64ArthurAraujo in #36698
- Fix spectator player cells not having initial shadow edge effect set by @Joehuu in #36729
- Fix transient user stats animation changing speed after first display by @peppy in #36738
- Various song select class cleanup by @peppy in #36745
- Attempt to fix "copy labels from issues" workflow permissions again by @bdach in #36746
- Use
HotkeyDisplayfor toolbar buttons by @netineko in #36750 - Fix input settings being interactive even when collapsed by @peppy in #36751
- Fix changing normal sample bank via keyboard hotkeys not updating addition bank if set to auto by @bdach in #36741
- Improve usability of sample bank toggles by @bdach in #36753
- Remove redundant footer from
TestScenePlaylistsRoomSubscreenby @LiquidPL in #36767 - Add pool type to matchmaking room invited event by @smoogipoo in #36765
- Migrate sheared overlay tests to
ScreenTestSceneby @LiquidPL in #36736 - Use better text structure for
ScreenshotSavednotification by @diquoks in #36701 - Refactor
TestSceneScreenFooterto test entireOsuScreens by @LiquidPL in #36718 - Fix song select navigation with page up/down by @linusgenz in #36293
- Switch multiplayer to use song select v2 by @peppy in #36747
- Fix ordering of skins not working as expected by @peppy in #36772
- Fix offset slider no longer showing explanatory tooltip correctly by @peppy in #36794
- Fix song select carousel state capture by @peppy in #36795
- Standardise display order of playcount / favourites by @Joehuu in #36796
- Fix loose spacers at top of leaderboard score context menu by @bdach in #36799
- Remove remnants of song select v1 and move v2 to final resting location by @peppy in #36752
- Fix a bunch of breakage around user tags by @bdach in #36798
- Unimplement legacy compatibility method by @smoogipoo in #36812
- Reduce online user list panel churn on initial display by @peppy in #36811
- Return tooltips to footer buttons on
MultiplayerMatchSongSelectby @diquoks in #36817 - Use web localisation on
LeaderboardScopeSelectorto matchosu-webby @diquoks in #36814
New Contributors
- @iwa made their first contribution in #36392
- @eeliogata made their first contribution in #36456
- @YHSabc233 made their first contribution in #36517
- @voidstar0 made their first contribution in #36563
- @nnfz made their first contribution in #36589
- @mmiddlezong made their first contribution in #36564
- @failaip12 made their first contribution in #36585
- @netineko made their first contribution in #36659
Full Changelog: 2026.119.0-lazer...2026.305.0-lazer