Hi guys. Back at you with updates since the last post, split into respective projects:

osu The osu!lazer project. The future of the osu! client. Download preview releases from here and follow along!

Add a right-click context option to carousel panels to view online beatmap details #1716 (peppy)

Fix retry count not displaying on pause overlay #1709 (DevSDK)

Make completion notification text for ProgressNotifications customisable #1707 (FreezyLemon)

Messages when tasks complete are now more easily customisable. You can see things like “Import successful!” instead of “Task has completed!”.

Added Deselect All button to ModSelectOverlay #1702 (Aergwyn)

Added confirmation dialog for “Delete ALL beatmaps” #1676 (Aergwyn)

Added Button to restore recently deleted beatmaps #1671 (FreezyLemon)

Just in case you accidentally made an oops. Right now this only works until osu! is closed, but in the future you will be able to undelete beatmaps for a day or two after you nuke them.

Make leaderboard tabs and active ruleset filter scores #1599 (naoey)

This brings country and friend leaderboards to life! It also adds nice placeholder messages when a network error occurs or you aren’t supportive enough to view a certain leaderboard.

Other Changes

Ignore bugged inspectcode inspection #1718 (peppy)

Remove manual audio thread synchronisation logic #1717 (peppy)

Correctly make fullscreen overlays block keyboard input from drawables behind them #1715 (peppy)

Fix keyboard and mouse input not properly getting blocked by GameplayMenuOverlay #1711 (peppy)

Make all TestCases public in line with framework TestBrowser changes #1710 (peppy)

osu-framework The game framework behind osu!lazer. Written from scratch with osu! in mind, but very extensible.

Switch to using Tasks in audio components to allow for sync/async handling #1275 (peppy)

As you may know, osu!lazer and its framework run separate threads for audio, input, draw and update. The audio thread has been especially hard to work with, as you could for instance ask a track to Play but on immediately checking the IsPlaying state it may still return false if the audio thread has not yet processed the operation.

All state-critical operations (currently only TrackBass ’ Play() , Stop() and Seek() ) are now blocking. If non-blocking behaviour is required async versions are still available but blocking should be preferred unless/until a performance issue is determined.

Improve key blocking behaviour of OverlayContainer #1277 (peppy)

OverlayContainer is used by prominent fullscreen game elements (such as osu!direct, social overlap and chat), but was until now not blocking keyboard input correctly. While in most cases this wasn’t noticeable due to a search textbox having focus, it meant you could not use global hotkeys (such as Ctrl+O to bring up the options) while at certain screens.

Now, OverlayContainer uses a modified input queue to block input for everything except drawables marked with IHandleGlobalInput .

Other Changes

Return the original message from RecursiveLoadExceptions #1279 (smoogipoo)

Make SortedList serialize correctly with JSON.Net #1278 (smoogipoo)

Clean up the TestBrowser assembly dropdown #1274 (peppy)

Don’t access Children when changing TextSize #1273 (peppy)

returning Push function when screen hasExited. #1241 (DevSDK)

osu-web The new web front-end. Already live but hasn’t yet replaced the old site, pending feature parity.

Ensure that all suggestions/problems are resolved before allowing nomination #2062 (nekodex)

In our continued efforts to reduce the manual overheads involved in beatmap modding, nominations will now only be possible after all problems and suggestion posts are resolved.

Limit loaded forum posts to 250 #2056 (nanaya)

A few users reported very high memory usage on the forums after browsing a thread through many pages. Old posts are now unloaded as you scroll, so your browser doesn’t get completely overloaded!

Apply better sorting defaults to beatmap sections in profile #2044 (peppy)

Beatmap sections on profile page are now orders by “newest first” rather than “oldest first”.

This also increases the number of scores/baetmaps shown each time “show more” is clicked to 20, up from 5.

Other Changes