What's Changed
- Fix radians/degrees mismatch in static storyboard rotation commands decode and encode by @logisticalissue in #38877
- Prevent
/watchcommand from spectating the local user by @LiquidPL in #38870 - Fix
ConfirmExitDialoglocalisation by @diquoks in #38858 - fix InspectCode scripts after nvika removal by @wakka810 in #38857
- Fix transform scale when key is pressed on legacy counter by @tsunyoku in #38865
- Avoid Velopack restart for package managed installs by @wakka810 in #38856
- Allow searching settings by hint text by @Joehuu in #38881
- Encode all colours from beatmap skin into the
.osuby @bdach in #38828 - Update SFX for the final results screen of ranked play by @nekodex in #38850
- Fix storyboard loops being shifted on saves due to relative time in encoder by @logisticalissue in #38895
- Add "notifications" as a search term for alerts and privacy section by @Joehuu in #38892
- Add
Opacitysetting toSkinnableSpriteby @stanriders in #38821 - Clamp object positions to [0, 512] during parsing by @bdach in #38844
- Allow uploading screenshots using Shift + F12 by @LiquidPL in #36133
- Adjust
LegacyKeyCounterDisplaysprites alignment to match stable by @unststable81 in #38875 - Warn users when screenshot uploads are rate limited by @LiquidPL in #38922
- Fix context menus potentially going offscreen in multiplayer and playlists by @khoaphhh in #38901
- Update style of extended details on profile page by @diquoks in #38196
- Remove
FavouriteButton's tooltip when it's disabled by @diquoks in #38706 - Make pressing ESC first deselect any placement tool by @LittleEndu in #38921
- Fix panel flash for time signatures not fitting power-of-two rate by @logisticalissue in #38827
- Refactor UserCoverBackground to be used with other models by @LiquidPL in #36277
- Fix input subsections leaving content rendering even when collapsed by @peppy in #38949
- Fix iOS build by @bdach in #38952
- Fix game not always respecting user's no-video download preference by @peppy in #38948
- Keep width of markers on legacy bar hit error meter constant regardless of scale by @bdach in #38953
- Fix blocking windows key not working with SDL3 raw keyboard by @Susko3 in #35727
- Fix duplicate test runs by @smoogipoo in #38955
- Fix screenshot rate limit error handling not working as expected by @peppy in #38960
- Adjust
WebSocketChannellogic to avoid crashes by @bdach in #38962 - Fix CI test report step failing by @bdach in #38964
- Extend
IScoreInfointerface to cover all baseline properties of score by @bdach in #38961 - Display active user counts in channel listing by @peppy in #38959
- Fix iOS hard crash on startup on iOS 27 devices by @peppy in #38966
- Add WebSocket messages for beatmap data and user activity by @tsunyoku in #38071
- Change tablet x and y offset precision to 0.01 by @C6JW in #38718
- Make alt-scroll work globally to adjust volume by @peppy in #38956
- Add beatmap info panel for argon results screen design by @bdach in #38976
- Replace
APIMod.ToMod()passthrough invocations with direct invocations of new extension method by @bdach in #38986 - Add player info panel for argon results screen design by @bdach in #38985
- update osu! drain time thresholds to match current RC by @Hiviexd in #38987
- Fix lack of escaping of quotes when performing keyword-style queries in beatmap listing by @bdach in #38988
- Support concurrent WebSocket writes by adding a semaphore by @tsunyoku in #38978
- Allow WebSocket data sources to send initial state upon client connection by @tsunyoku in #38979
- Allow connecting to WebSocket server via
127.0.0.1by @tsunyoku in #38980 - Refactor flashlight difficulty attribute by @tsunyoku in #38982
- Add total score panel for argon results screen design by @bdach in #38993
- Add a sane minimum beat length to
BeatSyncedContainerby @peppy in #38997 - Fix song select background preview when clicking on the beatmap info area / leaderboard by @austin19moore in #38105
- Add statistics grid for argon results screen design by @bdach in #39018
- Add ability to adjust hitsound volume separate from game effects by @peppy in #38990
- Fix song select buttons not working after attempting to force-exit when mod select is open by @Joehuu in #38221
- Fix high speed shift-key seeking no longer working in editor by @peppy in #38998
- Allow manipulation of global footer content at any time from a screen by @bdach in #39026
- Add score rank display for argon results screen design by @bdach in #39020
- Use CoreCLR runtime on Android by @smoogipoo in #39029
- Add background overlay component for legacy results screen design by @bdach in #39036
- Allow screens to specify buttons to show on the right end of the global footer by @bdach in #39035
- Fix some cases where playlist close footer button shouldn't be visible by @Joehuu in #38913
- Add score attribute text skinnable component by @bdach in #39052
- Add
español (Latinoamérica)language and update names in line with web by @Joehuu in #39063 - Include rank and sigma in matchmaking lobby status model by @LiquidPL in #39009
- Fix crash when resizing selection in certain configurations by @bdach in #39060
- Add dynamic 'hit' SFX to ranked play score screen based on context by @nekodex in #39039
- Add ranking panel element for legacy results screen design by @bdach in #39061
- fix: not update
starDifficultyBindableimmediately incomputeStarRating()to avoid flicker by @hesitling in #37204 - Adjust ranked queue visualisation for new design by @LiquidPL in #38995
- Adjust beatmap offset adjustment UI to be more user friendly by @peppy in #39073
- Add perfect indicator for legacy results screen design by @bdach in #39077
- Add support for encoding/decoding health graph to/from replays by @bdach in #39078
- Fix uneven spacing in audio offset settings by @diquoks in #39079
- Add localisation support to missed string on beatmap attributes display by @diquoks in #39087
- Add sheared button with icon variant by @LiquidPL in #39085
- Privatize
ScreenQueuestate handler by @LiquidPL in #39074 - Add health graph for legacy results screen design by @bdach in #39081
- Add matchmaking queue status bar component by @LiquidPL in #39083
- Add grade component for legacy results screen design by @bdach in #39089
- Fix playfield dim from slider tracking being applied late in Flashlight mod if multiple sliders are present on screen by @bdach in #39088
- Add retry / watch replay button components for legacy results screen design by @bdach in #39091
- Add online ranking button for legacy results screen design by @bdach in #39096
- Update framework by @peppy in #39104
- 👷 Migrate to Sentry.io by @ThePooN in #39097
- Add first pass at new solo results screen layout by @bdach in #39098
- Fix markdown footnote links not showing correct number by @Joehuu in #39121
- Fix skin editor components moving randomly when flipping by @Joehuu in #39119
- Refactor
TotalPlayTimedisplay and add web localisation support by @diquoks in #39095 - Refactor remaining multiplayer tests to use
MultiplayerTestSceneby @LiquidPL in #39100 - Allow filtering tags in
UserTagControlby @LiquidPL in #38912 - Ensure right footer buttons don't conflict with overlay content by @LiquidPL in #39116
- Add ranked play division badges by @LiquidPL in #38989
- Do not attempt to initiate spectator flow when playing custom rulesets by @bdach in #39138
- Allow more granular control over permissible operations on skinnables by @bdach in #39128
- Add localisation support to recently added notifications by @diquoks in #39130
- Add screen footer shim component for argon results screen design by @bdach in #39146
- Update team API model and add request by @LiquidPL in #39148
- Show effect points data in editor compose screen by @Hiviexd in #38905
- Adjust username colours in chat by @bdach in #39153
- Dismiss config-persisted search criteria in freestyle select screen by @bdach in #38795
- Change automatic cursor size adjust to be linear at higher CS values by @peppy in #39155
- Add beatmap info panel for extended results views by @bdach in #39156
- Ensure room is joined before pushing matchmaking screen by @LiquidPL in #39034
- Add model for storing matchmaking user stats by @LiquidPL in #39151
- Fix replay settings overlay keeping keyboard focus after collapsing by @SevenSec114 in #38898
- Add drum touch size setting for osu!taiko by @tf2mandeokyi in #34924
- Add ellipsis to remaining menu items and buttons that open a dialog/overlay/url by @Joehuu in #38914
- Fix hotkey displays not changing their text on keymap change by @diquoks in #39158
- Add player info panel for extended results views by @bdach in #39167
- Fix terminology of "temporarily showing all" header when viewing difficulties of a single beatmap by @Joehuu in #39166
- Fix editing retro base skin causing duplicated skin name by @peppy in #39165
- Fix
skin.ininot able to override settings under some scenarios by @peppy in #39175 - Add score info panel for extended score statistics view by @bdach in #39174
- Change priority of dynamic 'hit' SFX on ranked play results screen by @nekodex in #39171
New Contributors
- @wakka810 made their first contribution in #38857
- @khoaphhh made their first contribution in #38901
- @C6JW made their first contribution in #38718
- @tf2mandeokyi made their first contribution in #34924
Full Changelog: 2026.1005.0-lazer...2026.1115.0-lazer