Skip to content

Releases: ppy/osu


13 May 20:17
Choose a tag to compare

Code Quality


Disable relative-mode mouse by default on Linux (ppy/osu-framework#5776 by @smoogipoo)

There are still edge cases on Linux where relative-mode isn't working correctly, so let's disable by default.

Smaller changes

Gameplay (osu!)

Fix "strict tracking" mod breaking sliders (#23489 by @apollo-dw)

Fix hold-for-right-click showing during gameplay (#23529 by @peppy)

A bit of a hotfix for now until we figure a more permanent solution for this.


Reduce overhead induced by checking Bass CPU usage (ppy/osu-framework#5784 by @peppy)

Cache value of VerticalSync to avoid overhead retrieving from SDL2 each time (ppy/osu-framework#5783 by @peppy)

Fix D3D11 losing performance by constantly mapping/unmapping buffers (ppy/osu-framework#5785 by @smoogipoo)

Fix various graphical and performance regressions in last release (ppy/osu-framework#5787 by @bdach)

There's not going to be much of an explanation in this one. The goal is to revert to a known-working state. I don't know why the old code would fail in the ways it did.

Full Changelog: 2023.511.0...2023.513.0


11 May 07:44
Choose a tag to compare

Code Quality


Change default beat divisor to 1/4 snap (#23248 by @peppy)

This matches stable, and is a much saner default value. Will apply to new beatmaps and also beatmaps which don't specify a snap value in the .osu file.

Always round editor rotation to integer values (#23247 by @peppy)

As mentioned in youtube comments, there are next to no use cases for having floating-point rotation in the editor, so let's round it for now.

2023-04-20 14 33 21@2x

Fix editor potentially leaving a dangling beatmap if exiting during load too fast (#23333 by @Cootz)

Allow using the 'Use current' distance snap button when exactly on a hit object (#23361 by @OliBomby)

When exactly on the start time of a hit object, the 'Use current' option becomes unavailable because the first object before and after the current time is the same object. I changed this so it would get the previous hit object and the current hit object in this situation. That way you can easily get the distance snap to copy the same distance as used before.

Add more padding around playfield in editor to avoid overlap with tool areas (#23370 by @peppy)

Remove control point data storage from hit object (#23308 by @OliBomby)

Fixes various import / export issues, most notably when exporting a beatmap from the lazer editor causing many control points to be created that shouldn't have been there.

Show slider velocity in hit object inspector (#23404 by @peppy)

Show beatmap slider velocity statistics when adjusting velocity (#23405 by @peppy)

Gives a mapper / reviewer a better sense of the larger picture of the beatmap when viewing slider velocity.

Add beatmap-level velocity setting to difficulty settings (#23431 by @peppy)

Add the ability to change the beatmap tick rate in the editor (#23434 by @peppy)

Smaller changes

  • Reset online ID on locally modifying beatmap (#23362 by @bdach)
  • Prevent infinite repeat count when adjusting repeats of 0 length slider (#23357 by @OliBomby)
  • Fix incorrect special style description text (#23429 by @peppy)


Fix touch feedback breaking Direct3D 11 exclusive/optimised fullscreen (ppy/osu-framework#5753 by @Susko3)

Disable new mipmap generation (ppy/osu-framework#5765 by @bdach)

This was intended to improve performance, but ended up causing many issues across multiple platforms. We'll loop back with this change again in the future.

Add long tap to right click support (ppy/osu-framework#5255 by @frenzibyte)

Finally you can access right-click menus (and finish slider placement) on mobile devices! We'll continue to improve the mobile experience but this is a solid place to start.

Smaller changes


Implement new design of Key Counter (#22655 by @ItsShamed)

Not yet available for in-game use. Needs a bit more work on the HUD side of things.


Fix key counters counting during break time (#23309 by @peppy)

Fix some videos with uppercase file extensions not displaying correctly in-game (#23260 by @Haspamelodica)

Keep shared mod settings when changing ruleset (#22711 by @Terochi)

Smaller changes

Gameplay (osu!)

Add cursor ripples (#23342 by @peppy)

As with stable, this is disabled by default. Turn on in settings.

Add "bubble" mod to osu! ruleset (#21789 by @mk56-spn)

This mod is a mix of reading and memory, with the difficulty it adds to those two skillsets being highly dependant on the map in question, ( for example, it adds considerably more difficulty from my experience on stream maps, grid maps, or really any map that often has circles coming back to the same place).


Increase the rate of slider ball fade on argon skins to match other implementations (#23371 by @peppy)

Add support for flipping colour of reverse arrow on legacy default skin when combo colour is too bright (#23379 by @peppy)

Fix fade in delay for first slider end circle being incorrect when snaking disabled (#23372 by @peppy)

Fix hit object animations not being played back in sync (#23440 by @peppy)

Have not compared timing offset with stable, but at least this brings animations into a stable state, relative to their hitobjects.

Gameplay (osu!mania)

Fix osu!mania hold note animations not correctly re-applying after rewind (#22866 by @peppy)

Fix osu!mania hold note head image incorrectly scrolling off screen on late releases (#23439 by @peppy)

Gameplay (osu!taiko)

Fix extreme aspect ratios in taiko (#23325 by @sw1tchbl4d3r)

This PR fixes two weird behaviors at extreme aspect ratios.






  • Disable relative-mode mouse by default on Linux (ppy/osu-framework#5776 by @smoogipoo)
    • There are still edge cases on Linux where relative-mode isn't working correctly. One example is my NoMachine setup, which grabs the cursor but pins it to (windowWidth, windowHeight).

The change to Default is intentional (for macOS also), otherwise the in-game options will show a non-default setting for the default value on these platforms.


Fix huge lag spike on new combo in osu!catch (#23275 by @Terochi)

Fix runaway memory usage at song select when opening many beatmaps many times (#23388 by @peppy)

Improve performance and reliability of undo / redo in skin editor (#23344 by @Terochi)

Allow all exports to happen asynchronously (#21308 by @cdwcgt)


Update veldrid to fix game no longer starting on older macOS versions (ppy/osu-framework#5780 by @peppy)


Fix exclusive fullscreen notice showing false positives for new renderers (#23332 by @peppy)

This avoids the notice showing when running on windows, but using the newer renderers (where the underlying logic hasn't been tested properly and can result in false-positives).

Add setting to change brightness of letterbox background when using scaling (#23038 by @cdwcgt)

Skin Editor

Fix BeatmapAttributeText not supporting unicode artist/title (#23369 by @peppy)

Song Select

Fix mod multiplier showing wrong value when adjusting speed on preset (#23284 by @Hy0tic)

Add ability to edit mod presets (#22801 by @cdwcgt)



  • Fix test failure in MultiplayerMatchSongSelect due to multiple overlays present (#23383 by @peppy)
  • Fix rapid back button test failure (#23424 by @bdach)
  • Fix TestSceneHoldNoteInput not displaying correctly (#23437 by @peppy)


  • Add workflow for automated osu-web mod definition updates (#23416 by @bdach)


Fix now playing playlist not highlighting selected item on initial open (#22950 by @Joehuu)





Add ability to report chat (#21736 by @cdwcgt)


Smaller changes


19 Apr 13:44
Choose a tag to compare

What's Changed


Remove left/right click based placement in taiko editor and respect sample selection (#23112 by @peppy)

Previously, right click would place a "kat". But users are used to instead using hit sample hotkeys to choose which type of object is placed, so we've reverted back to that method (and made right-click do nothing special for now).

Add hit object inspector to editor (#23133 by @peppy)

I did this initially to debug an issue, but it's something that will probably be useful to mappers as well so polished it a bit for permanent inclusion.

Add rotation snapping to editor selection (#23156 by @Micha-ohne-el)

15° snapping can now be achieved by holding shif while adjusting rotation of a selection.

Fix saving beatmaps taking far too long due to pointless online metadata lookup (#23189 by @bdach)



Ensure replays don't enter a failed state when exiting gameplay (#22878 by @peppy)

Fix crash on attempting to load some old beatmaps which specify background images incorrectly (#22858 by @peppy)

Don't show epilepsy warning when storyboards are disabled (#22868 by @peppy)

Add progressive DT/HT mod multipliers (#23177 by @smoogipoo)

For DT, the multiplier is in the range [1.0, 1.2].
For HT, the multiplier is in the range [0.5, 0.9].

  • For DT, I intended to make the multiplier for 1.5x speed as close to 1.12 as possible, and it now sits at 1.1x.
  • For HT, I took a bit of a liberty since the original 0.3 multiplier doesn't really correspond to anything. In this case, I made it scale in increments of 0.1, which is still harsher than DT's scaling but not as harsh as the original multiplier. Something similar to the original multiplier can be achieved with 2x scaling, however it would result in 0.5x having a multiplier of 0 which doesn't feel right.

Smaller changes

  • Introduce common structure for key counters (#22654 by @ItsShamed)
  • Fix pause and fail screen samples not updating when skin is changed during gameplay (#22872 by @Terochi)
  • Invoke RevertResult on parent DHO when nested DHO is reverted (#23185 by @bdach)

Gameplay (osu!catch)

Allow AR and CS values below 1.0 for osu!catch Difficulty Adjust mod (#23020 by @rrex971)



Improve performance of video playback with new renderer (ppy/osu-framework#5734 by @smoogipoo)

Improve texture shader performance on fragments away from corners (ppy/osu-framework#5735 by @frenzibyte)

Implement custom mip map generation & raise maximum texture atlas size to 4096x4096 (ppy/osu-framework#5508 by @Tom94)

Smaller changes

Song Select

Fix song select beatmap difficulty count not updating when deleting (#23178 by @Joehuu)


Smaller changes

  • Fix song select matching label not using right terminology (#23000 by @Joehuu)


Fix beatmap listing filter control being blocked by loading layer (#22929 by @Joehuu)





Fix beatmap listing sort direction not resetting when changing criteria (#22926 by @Joehuu)





Improve menu handling on disabled items (or items with no action assigned) (ppy/osu-framework#5658 by @peppy)

Until now, clicking a disabled menu item (or item with no action) would have still closed the menu. Also, the hover state would make it look like the menu items are interactive. Now clicks do nothing and there's no visible hover state change for disabled items.

Show guest difficulty author in beatmap overlay (#23087 by @cdwcgt)


Smaller changes

  • Update comment vote pill in line with web (#23098 by @Joehuu)
  • Fix attempting to show overlay during game intro playing sound effects (#23108 by @peppy)
  • Normalise horizontal padding on overlays (#23103 by @Joehuu)
    • All overlays should have 50 horizontal padding. The changes mostly match web, with a difference:
  • Update localisations (ppy/osu-resources#254 by @peppy)

New Contributors

Full Changelog: 2023.403.1...2023.419.0


03 Apr 02:09
Choose a tag to compare


Fix OpenGL render flickering/freezing (ppy/osu-framework#5732 by @frenzibyte)


Fix window mode dropdown not showing (#23089 by @Susko3)

Full Changelog: 2023.403.0...2023.403.1


02 Apr 16:30
Choose a tag to compare

Code Quality


Fix spinners being selectable for too long after they fade in the editor (#23037 by @peppy)


Fix game no longer starting on old linux versions (ppy/osu-framework#5725 by @peppy)

Fix some things looking incorrect on the new renderer (ppy/osu-framework#5722 by @bdach)

Fix screenshots not working on the new renderer (ppy/osu-framework#5729 by @frenzibyte)

Smaller changes


Fix game incorrectly reaching results screen when saving failed replay on beatmap with video (#23048 by @peppy)

Gameplay (osu!catch)

Fix already caught fruit appearing too large at low circle sizes (#23053 by @peppy)

Gameplay (osu!mania)

Fix hit lighting mis-alignment on argon skin with upwards scroll direction (#23024 by @bdach)


Improve metal performance on some desktop systems (ppy/osu-framework#5726 by @peppy)

Up to 10x improvement in some cases. We're still investigating iOS and M1/M2 system performance. We have some leads but it's going to take a bit longer.

Fix stutters during gameplay when spinners appear (#23034 by @peppy)

Shader cache wasn't being used correctly since the new renderer's implementation.


Fix error message when starting game on iOS (ppy/osu-framework#5727 by @peppy)

Smaller changes

Skin Editor



  • Fix localisation for audio device error containing incorrect newline escaping (#23049 by @peppy)


  • Fix select beatmap button not highlighting when creating a multiplayer room using keyboard (#22995 by @Joehuu)
  • Fix web account registration not bypassing the external URL warning (#23036 by @peppy)

New Contributors

Full Changelog: 2023.326.1...2023.403.0


26 Mar 17:47
Choose a tag to compare


Hide vulkan renderer option for now (#22961 by @peppy)

We'll bring it back when it's more stable.


Fix iOS native libraries for SPIRV not specifying bundle version on manifest (ppy/osu-framework#5707 by @frenzibyte)

Full Changelog: 2023.326.0...2023.326.1


26 Mar 15:45
Choose a tag to compare

This is a big one!!

Code Quality



Fix storyboard videos not fading out on completion (#22806 by @peppy)

Stable uses a 1,000 ms fade-in / out. Rather than matching that, I've stuck with 500ms (what lazer was already using for the fade-in) because I think it feels better.

Fix "omit barline" beatmap setting sometimes not applying correctly (#22754 by @peppy)

This also moves the setting into the "timing" control point type, rather than "effect", as it makes much more sense here.

Fix replay recording cutting out too early (#22527 by @Terochi)

In stable, you would see the user's cursor continue to move after the last hitobject until the results screen was displayed. Until not in lazer, it would cut out precisely at the last object, which didn't feel good.

Old behaviour returns, yay!

Fix hovering the loading area at the player loading screen stopping progression to gameplay (#22848 by @Rovearix)

Gameplay (osu!)

Make osu! touch input aware of the distance travelled of a non-direct touch (#22873 by @peppy)

This is done by introducing the concept of "distance travelled" to a touch. If a touch covers a certain distance, it becomes the preferred positional tracking touch (only to be overridden by a direct touch, as previously).

This is one of the ideas I had to improve the touch system, but I wanted to keep any added complexity out of the initial implementation. There are other additions I can imagine helping with the edge cases pointed out (for instance, considering the playfield bounds as proposed in that thread) but I want to apply these one-per-release and get confirmation from users that we're going in the correct direction.

Gameplay (osu!mania)

Update osu!mania argon colours to match new proposal (#22814 by @peppy)

Update osu!mania argon design in line with proposal (#22820 by @peppy)

Gameplay (osu!taiko)

Add "Single Tap" mod (#22746 by @OpenSauce04)

This is implemented such that Don and Kat hits are treated as independent instances of how the Single Tap mod works for osu!standard, with each action type only being allowed to use the first key that activates it.

Strong hits are allowed to be hit with both the left and right actions of its respective type.


Optimise song select beatmap filtering (#22782 by @OliBomby)

Should improve filtering performance by up to 50% for large beatmap collections.

Smaller changes


Fix external links not working on Android (ppy/osu-framework#5666 by @Joehuu)

Allow displays with no display modes (ppy/osu-framework#5665 by @Susko3)

Should hopefully allow the game to start on SteamVR.

Fix file association handling not working correctly on macOS (#22913 by @Susko3)

Clicking the "osu!direct" button on the website will now work correctly, for instance.

Smaller changes

  • Fix exports sometimes exceeding the maximum path length (#22653 by @Cootz)
  • Remove arbitrary extension limitation from drag and drop imports (#22914 by @Susko3)


Add ability to select renderer (#22924 by @peppy)

The default setting of "Automatic" will be what most of you want.

IF you run into any issues and can't wait for fixes in the next releases, please set your setting to "OpenGL (Legacy)". This is the renderer the game has used until now. That said, we recommend you leave the setting and report any issues - we will try and address them quickly!

  • On windows, DirectX will be used as a priority. This has the widest compatibility range and best performance for now.
  • On linux, OpenGL will still be preferred. Vulkan will be considered once it is more compatible (we need to do some work from our end), but you can manually set it to the default if you want to experiment.
  • On macOS and iOS, Metal will of course be preferred (and should always be used unless it's causing issues for you).
  • Android is still a WIP. Ability to choose vulkan will come later on!

We've heard of draw frame performance improvements of 2-3x from users that have tried this already. Let us know how it works for you!

Keep in mind this is only the start. There's plenty of optimisation work to be done in the near future.

Huge props to everyone involved in making this work! We now have Vulkan, Metal, DirectX 11 and Open GL support.

Skin Editor

Add components which display the current player's avatar and flag (#22797 by @ItsShamed)

Can be added to any skin using the layout editor.


Make reverting a skin in the skin editor a dangerous action (#22747 by @mk56-spn)

Add support for cyclic selection in skin editor (#22804 by @peppy)

Smaller changes

  • Fix import of skins with non-ASCII names that have been previously exported by lazer (#22860 by @rozukke)
    • This prevents skins with non-ASCII names being imported incorrectly after being previously exported, since upon export a "valid" version of the skin name is used for the directory, and that was not being accounted for in the import.

Song Select

Don't filter away results with missing data when using "Date Submitted" or "Date Ranked" sort modes (#22775 by @peppy)

From a user's perspective, changing a sort / order mode shouldn't filter away results, but we were doing this.

In terms of UX expectations, in stable this kind of scenario would results in a group being added to the end of son select with "Not ranked" or "Unknown". I think we should aim to match this eventually.

Fix local scores set against a different version of a beatmap still showing in leaderboards (#22539 by @Cootz)

Show count of visible beatmaps at song select (#22773 by @peppy)

Brought across from stable. I was going to make this show more relevant information on why things are filtered, but it turns out to be a bit of a PITA. Having the count along is still beneficial I believe.

Smaller changes

  • Fix song select search textbox font size...


05 Mar 13:59
Choose a tag to compare

Mostly a hotfix for the last release.

Code Quality

Gameplay (osu!mania)

Fix upwards scroll direction not working with recent hold note display changes (#22776 by @peppy)

Stopped working in the last release.


Fix external links not working on Android (#22790 by @Joehuu)

Skin Editor

Fix several issues with skin editor behaviour on screen transitions (#22787 by @bdach)

  • Fix skin selection not clearing on exit to non-skinnable screen.
  • Fix non-skinnable screen placeholder sometimes not displaying.
  • Fix layer dropdown showing up when no layers are available.


Add ability to scroll back to previous position after scrolling to top via button on overlays (#22743 by @Joehuu)


Smaller changes

  • Fix "talking with" text overflowing when usernames are too long (#22766 by @Joehuu)

Full Changelog: 2023.301.0...2023.305.0


02 Mar 14:21
Choose a tag to compare

Thanks for following the lazer journey!

A bit of a delayed release this time as we work on some larger efforts (renderer, anticheat etc.)

Not slowing down, just tackling the big tasks!

Code Quality


Automatically select the closest timing point on entering the timing screen (#22597 by @peppy)

Feels more natural when coming from stable.

Add toggle to disable automatic seeking to object after placement (#22686 by @MaxKruse)

Until now, some placement scenarios in the editor saw time being automatically seeked forward, to help wwith meapping efficiency (osu!mania placement in general & osu! placement when distance snap grid was turned on).

This settings now provides the ability to disable this.



Fix "skip" key binding no longer working in replay playback (#22598 by @peppy)

Smaller changes

  • Fix song progress incorrectly displaying timeLeft counter after rotation (#22600 by @Terochi)
    • Broke in the last release.
  • Don't show "resume" cursor when autopilot mod is turned on (#22338 by @Pasi4K5)
  • Fix hitsounds not playing correctly in some osu!mania / osu!taiko scenarios (#22659 by @peppy)
    • While we correctly support this at a decoding level, the special case of taiko / mania playing back samples in a non-standard method meant that things would fall apart there. This manifests in beatmaps which adjust sample sets or volumes mid-object (think osu!taiko drum roll or osu!mania hold notes), where the actual playback would not respect these adjustments.

Gameplay (osu!)

Fix hit circle late-miss fading differences compared to stable (#22543 by @Cwazywierdo)

In stable, if a hit circle is not hit on time it fades out until it becomes impossible to hit and registers as a miss. In lazer, a hit circle doesn't start to fade out until it's already registered as a miss. This change mathces the classic feel of note fade.


Note that this is only applied to "classic" mod for now.

Fix random white pixels on slider paths (ppy/osu-framework#5644 by @goodtrailer)

See white pixel:


Gameplay (osu!mania)

Fix osu!mania long notes not always displaying correctly since recent update (#22599 by @peppy)

Hopefully the final fix for osu!mania long note skinning. We've tested multiple skins now to ensure compatibility!

Gameplay (osu!taiko)

When hitting early or late, snap the note flying animation to the judgement area (#22553 by @OpenSauce04)

Previously we would always have the animation start from the hit location, which gives more visual feedback but is not what users were used to (from stable). For now, let's go back to how things were.

Note that this is only applied to "classic" mod for now.

Fix converted beatmaps occasionally having incorrect note types (#22589 by @sw1tchbl4d3r)

The current behavior breaks some taiko maps using the hitsample filename, like on this map at 00:45:961. The note is a normal don/red note in lazer, while it should be a strong one like in stable.

Smaller changes



Fix chat getting in a join loop when clicking on channels in the listing quickly (#22544 by @peppy)

Smaller changes

  • Add support for Watching and Spectating activities (#22529 by @ItsShamed)
  • Add TestingBeatmap and ModdingBeatmap activities to beatmap editor screens (#22624 by @Joehuu)
    • The editing activity logic is a bit different from stable. Stable seems to check for username, while this PR checks for online ID. Seems better for cases where users change their names. I also want to add a check if a beatmap is ranked and display "editing" instead of "modding" as it is already final/non-moddable, but keeping it simple for now.


Improve readability of AccuracyCircle (#22554 by @Walavouchey)

This fixes three minor issues:

  • The accuracy circle gauge could sometimes look like it landed on the wrong rank.
  • Most of the RankBadges were positioned at the start of their corresponding sectors instead of in the middle. There aren't any lines connecting the two or anything so this approach wasn't as legible.
  • The D rank badge would only appear with at least 35% accuracy, when in reality a D rank represents a pass of any accuracy below 70% (low values are achievable with e.g. No Fail).






Allow tablet area to be dragged (#22697 by @ggliv)


Smaller changes

  • Fix exports failing if a directory exists with the proposed filename (#22646 by @peppy)

Skin Editor

Add skin editor undo / redo support (#22506 by @peppy)

Fix skin component previews on toolbox buttons having incorrect size for one frame (#22607 by @Joehuu)


Improve the feel of hovering components in the skin editor toolbox (#22672 by @peppy)

Previously the expand and contract of elements were not aligned chronologically, which could create ugly changes in content height of the view itself (making it very hard to target buttons once one or more were expanded).



Only show skin blueprint labels when selected or hovering (#22671 by @peppy)

Just to clean things up visually.

Improve the appearance of skin blueprints (#22670 by @peppy)


osu Game Tests 2023-02-17 at 09 42 32


osu Game Tests 2023-02-17 at 09 41 43|

Also adds tweening to anchor point movement, because I think it will help greatly with user understanding of exactly what is going on.

Add skin editor clipboard support (#22650 by @peppy)

Works across different screens and different skins.

Add the ability to select a target layer in the skin editor (#22674 by @peppy)

Consider this a first step. I'd want the layer selection to be a radio button list rather than a dropdown. Just getting the general structure together so we can test this functionally before improving the UX.

This can immediately be used in gameplay to add elements which are saved against specific rulesets, rather than globally....


08 Feb 05:39
Choose a tag to compare

Thanks for keeping up with lazer updates as always! Check out the video digest version of this changelog!

Code Quality


Add ability to snap slider tails with other nearby objects (#22265 by @Wleter)


Fix creating a copy of a difficulty in the editor removing the original beatmap from user collections (#22318 by @naoey)

Changes beatmap saving so that by default it does not transfer the hashes in collections, and only transfers them when saving the same difficulty in the editor.

Fix argon hit circles occasionally going missing during editor seeking (#22391 by @peppy)

Add preview time verification module (#22281 by @cdwcgt)

You will now be informed when preview time is not set, or doesn't match across all difficulties.

Allow snapping objects to slider tails and repeats (#22498 by @Wleter)

Fix nudging object positions using j / k not being undoable (#22504 by @peppy)

Smaller changes

  • Make PathControlPointVisualiser generic (#21560 by @OliBomby)
    • This allows any osu! hit object with a path to draw a path control point visualiser. For future use.


Fix emphasised markdown text not flowing correctly (ppy/osu-framework#5631 by @Joehuu)



Smaller changes


Add "accuracy challenge" mod (#18402 by @ggliv)

This mod adds a new failure condition to gameplay based on current accuracy. If accuracy goes below a set threshold (defaulting to 90% for an A rank), the beatmap will fail. Accuracy is checked continuously throughout the map.

This mod is intended to be used as a general challenge/difficulty increase for local and playlist play, much like SD and PF.


Fix beatmaps with multiple osb files potentially reading the storyboard from the wrong one (#22406 by @peppy)

In stable, the storyboard filename is fixed (reference). In lazer, we were always looking for the first .osb in the database. In the case a beatmap archive housed more than one .osb files, this may load the incorrect one.

Fixes storyboard playback for this beatmap, which had three osb files.

Allow pausing replays with middle mouse button (#22000 by @Joehuu)

This can also be customised in key binding settings.

Ensure pause sample loop is stopped on exiting player (#22535 by @peppy)

Fix storyboard outro time potentially running too long (#22532 by @peppy)

If a storyboard has a loop with a very high loop count (under the premise of it being ignored, ie. how stable handles this case), lazer would try to play out the full length of the loop.

Smaller changes

  • Fix BPM counter value being affected by non-mod-related playback rate changes (#22516 by @mk56-spn)

Gameplay (osu!)

Add support for disabling "hit lighting" with osu! argon skin (#22404 by @peppy)

Keep in mind that the "hit lighting" toggle is only supposed to remove the afterimage lighting which is present on classic skins.

Any further tweaking that players want from the skin (ie. making animations shorter or removing more flashiness) will come with future settings.

Add empty space tap-streaming support for osu! ruleset on touchscreen devices (#22375 by @peppy)

Use one finger to track cursor position while using up to two more to tap (and actuate left/right keys).

I've implemented this in a relatively naive way to begin with. We'll adjust with more feedback.

One unavoidable caveat here is that the game will give the user one extra input if they tap on a hit circle directly then "stream" using two other fingers. In other words, you can hit stacks of three objects by pressing three fingers in quick succession (one on the circle, two anywhere else) without releasing any, which is not possible with keyboard + mouse.


Add very basic kiai flash to argon hit circles (#22412 by @peppy)


Fix miss animation on old skins not moving correctly (#22421 by @EXtremeExploit)


Smaller changes

  • Fix touches not being handled outside OsuTouchInputMapper when using screen scaling (#22381 by @Susko3)
  • Adjust argon hit lighting further (#22440 by @peppy)

Gameplay (osu!mania)

Add basic support for stupidly long hold note skin textures (#22389 by @peppy)

Also known by the affectionate "percy long notes" name in the community.

Rough visual pass. Not going to overthink this one. Not accepting any proposed changes to make it match stable visually until we get this out for testing.

I am interested if anyone finds a skin which doesn't use stupid-long textures and gets broken/affected by this change.

Note that this will cause some long notes to look visually worse due to the downscaling. I think it's the best we can do, though. Going forward, we need to

  • Address user concerns regarding hold note visibility so they don't need to do this hackery in the first place (ie. support faded ends in default skins as discused in #20576, including a proposal from me).
  • Add a better skinning interface for hold note bodies.

Improve argon hold notes visuals and fix reverse scroll direction looking wrong (#22402 by @itsMapleLeaf)


Gameplay (osu!taiko)

Fix scroll speed not being constant since last release when adjusting window width (#22325 by @sw1tchbl4d3r)

The assertions made in the previous release (i.e. looking identical to classic mod and stable) weren't quite true yet, due to the fact that constant SV scaling must be moved out of the classic mod as well.

This change makes taiko notes scroll at a constant speed, no matter the size of the playfield.


Add ability to change osu!taiko touch screen layout from KDDK to DDKK / KKDD alternative control schemes (#22109 by @OpenSauce04)

This adds a new setting under rulesets/osu!taiko that allows you to select which control scheme you would prefer to use when using a touch screen.


Smaller changes


Add localisation support for most skinnable components (#22489 by @ItsShamed)

Smaller changes


Fix original files not being deleted when importing to game on android (#22361 by @Susko3)

Allow importing beatmaps via file associations on desktop platforms (#22515 by @Susko3)

Note that the game doesn't yet hook up associations, so this still requires a manual step (or dragging directly to the executable).

Smaller changes

  • Fix migration putting game files in root of disk if no other files exist (#22467 by @Cootz)
  • Add a way to raise the window (ppy/osu-framework#5640 by @Susko3)
    • Use case is raising the primary window when opening files/links via IPC (non-primary instance passing arguments to the primary), see #22519.

Only implemented on desktop platforms. Raising a window is not a thing on mobile platforms, the OS has full control there (on Android we set `LaunchMode...