Releases: ppy/osu
2025.118.2
Hotfix release for right click at song select and editor setup screen mishaps.
Android release is not updated because github actions are not working currently for android.
Full Changelog: 2025.118.1...2025.118.2
2025.118.0
Code Quality
- Cleanup Objective-C interop code (ppy/osu-framework#6474 by @frenzibyte)
- Expose game host from iOS app delegate class (ppy/osu-framework#6477 by @frenzibyte)
- Show whether drawable is receiving input in draw visualiser (ppy/osu-framework#6481 by @peppy)
- Fix crash when dragging in a text box while a key is held down (ppy/osu-framework#6485 by @424ever)
- Upgrade packages (#27920 by @peppy)
- Clean up windows association manager code (#31450 by @peppy)
- Simplify editor "ternary button" structure (#31462 by @bdach)
- Add new osu!(stable) registry ProgId (#31481 by @Susko3)
- Use
double
inScrollContainer
for scroll tracking (ppy/osu-framework#6467 by @peppy) - Allow
TextBox
to specify type of text being input (ppy/osu-framework#6408 by @frenzibyte) - Update game
ScrollContainer
usage in line with framework changes (#31474 by @peppy) - Specify type of text input in most
TextBox
usages (#30495 by @frenzibyte) - Ensure API starts up with
LocalUser
in correct state (#31507 by @peppy) - Change
OffsetScrollPosition
to take adouble
(ppy/osu-framework#6492 by @peppy) - Add entry point to
Game
for logging setup purposes (ppy/osu-framework#6493 by @peppy) - Typo fix (#31531 by @shawwn)
- Bump NVika tool to 4.0.0 (#31534 by @bdach)
- Bump NVika tool to 4.0.0 (ppy/osu-framework#6494 by @bdach)
- Remove
Status
andActivity
bindables fromAPIUser
(#31513 by @smoogipoo) - Fix incorrect release pattern in macOS/iOS texture loading code (ppy/osu-framework#6495 by @frenzibyte)
- Move error function from osu.Game.Utils to osu.Game.Rulesets.Difficulty.Utils (#31520 by @Natelytle)
Editor
Speed up metronome in timing screen when pressing control key (#31342 by @minetoblend)
Changes the speed at which the metronome swings & the tick sample plays to 2x (or 3x when beat divisor is in triples mode) the speed when control is pressed, matching stable behavior.
Fix slider repeats not properly respecting "show hit markers" setting (#31354 by @bdach)
Fix slider end circles not remaining for long enough when hit animations disabled (#31390 by @peppy)
Reset playback speed to 100% on entering test play (#31445 by @bdach)
Force new combo on objects succeeding a break (#31448 by @bdach)
Display storyboard in editor (#31364 by @bdach)
Add combo colour override control to editor (#31473 by @bdach)
Fix performance degradation while trying to place object with a new combo in the editor. (#31446 by @EVAST9919)
Smaller changes
- Round object coordinates to nearest integers on legacy export rather than truncating (#31305 by @bdach)
- This fixes minor issues with snapping when exporting for use in stable. It's going to be more important soon as BSS comes online.
- Always block scroll input above editor toolbox areas (#31383 by @peppy)
- Constrain range of usable characters in romanised metadata to ASCII only (#31433 by @bdach)
- Reduce allocations in the editor caused by
TimelineBlueprintContainer
(#31436 by @EVAST9919) - Select closest timing point every time the timing screen is changed to (#31454 by @bdach)
- Delete entire juice stream when only one vertex remains after deleting another vertex (#31452 by @bdach)
- Fix juice stream placement blueprint being initially visually offset (#31453 by @bdach)
Gameplay
Fix not being able to apply last play offset after returning to song select (#31386 by @peppy)
This stopped working recently, but we heard the feedback that this is too useful to do away with!
Implement spectator list display (#31526 by @bdach)
Smaller changes
- Fix rate adjustments changing the spacing between replay frames (#31459 by @peppy)
- Apply beatmap offset to all difficulties only if they have the same audio (#31523 by @Rudicito)
- Fix gameplay offset adjustment limits not being enforced (#31533 by @peppy)
Gameplay (osu!)
Fix slider repeat arrows animating incorrectly in editor / replays (#31388 by @peppy)
Gameplay (osu!catch)
- Fix slider event generator incorrectly not generating repeats when tick distance is zero (#31306 by @bdach)
Online Play
Add multiplayer auto-start setting for 10 seconds (#31381 by @peppy)
This was added due to feedback that the previous minimum of 30 seconds feels too long for most cases.
Fix star range display looking a bit bad when changing opacity (#31435 by @peppy)
Before | After |
---|---|
Add notifications for when friends go online or offline (#31444 by @smoogipoo)
Note that the friends overlay won't yet update in realtime with status changes β that's coming soon!
Smaller changes
- Remove status check for metadata update queue watching (ppy/osu-server-spectator#254 by @peppy)
- Avoid sending user presence updates when nothing has changed (ppy/osu-server-spectator#256 by @peppy)
- Ensure user state is never conveyed for "appear offline" users (ppy/osu-server-spectator#257 by @peppy)
- Always broadcast user presence to users' friends (ppy/osu-server-spectator#255 by @smoogipoo)
- Fix connection errors on self-friends (ppy/osu-server-spectator#260 by @smoogipoo)
- Always broadcast local user's state back to themselves (ppy/osu-server-spectator#261 by @smoogipoo)
Performance
- Fix stutter on intensive storyboards when entering break time with 100% background dim (#31506 by @peppy)
- This avoids piled-up overhead when entering break time. It's not great, but it is what we need for now to avoid weirdness.
Platform (Desktop)
Change the way extensions are handled to better support side-by-side osu!stable installs (#31438 by @Susko3)
With this change, you will now be able to select which game version to open files with on windows:
You can change your preferences at any time by right-clicking on a beatmap:
osu! and osu!(lazer) appear in the "Open with" context menu:
You can also choose the default app for each file type from system settings:
Add native macOS image loading support (ppy/osu-framework#6475 by @frenzibyte)
Improves texture loading time by a magnitude on macOS.
Fix replays not correctly pre-importing beatmap when arriving from a cold start (#31508 by @peppy)
Until now, if you double-clicked a replay while lazer wasn't open, if the beatmap isn't already locally available it would just show a fail message rather than attempting to download the beatmap for you.
Platform (Mobile)
Implement system-provided file selection display on iOS (ppy/osu-framework#6445 by @frenzibyte)
Display popup disclaimer about game state and performance on mobile platforms (#31403 by @frenzibyte)
Smaller changes
- Enable "Game Mode" on iOS (#31363 by @hrfarmer)
- Disable dropdown searching on mobile when no hardware keyboard is attached (ppy/osu-framework#6479 by @frenzibyte)
- Fix mobile release dialog obstructed by the software keyboard (#31414 by @frenzibyte)
- Fix error when opening files on startup on Android (#31492 by @Susko3)
Reliability
- Ensure intro files exist in storage during startup (#31418 by @peppy)
- Fix initial skin state being stored wrong to skin editor undo history (#30060 by @peppy)
Skinning
- Add support for
CursorTrailRotate
skin command (#31519 by @EVAST9919)- Preview: https://streamable.com/1g3bh8
Song Select
Make the score background yellow for friends on the leaderboard (#31240 by @Plextora)
Changes to absolute scrolling at song select (#31535 by @peppy)
This is a bit of a catch-all fix up while implementing this in the new carousel.
- Users can now choose a custom binding instead of right mouse if you wish
- Removes the setting. This can now be disabled by unbinding the key. Note that this changes the default to have it as right mouse button. This is an intentional change β I believe this functionality should be on by default as it's beneficial to most users.
Smaller changes
- Add basic framework for carousel displays (aka
BeatmapCarouselV2
) (#31...
2025.101.0
Switch scroll direction for beat snap key bindings (#31277 by @kongehund)
Populate metadata from ID3 tags when changing beatmap audio track in editor (#31307 by @bdach)
Pause playback when entering gameplay test from editor (#31303 by @bdach)
Speed up metronome in timing screen when pressing control key (#31342 by @minetoblend)
Changes the speed at which the metronome swings & the tick sample plays to 2x (or 3x when beat divisor is in triples mode) the speed when control is pressed, matching stable behavior.
Smaller changes
- Take custom bank name length into account when collapsing sample point indicators (#31352 by @bdach)
- Fix quick-deleting unselected slider path control point also deleting all selected control points (#31348 by @bdach)
- Fix slider end drag marker blocking open of control point piece context menus (#31350 by @bdach)
Framework
- FFmpeg build: Use macos-13 CI image (ppy/osu-framework#6473 by @FreezyLemon)
Gameplay (osu!)
Change relax mod hit leniency to be the same as in stable (#31287 by @stanriders)
Settings
- Fix volume adjust key repeat not working as expected (#31282 by @peppy)
- Ignore whitespace while 2FA authentication (#31362 by @CuNO3)
New Contributors
Full Changelog: 2024.1224.0...2025.101.0
2024.1224.1
Difficulty Calculation
- Refactor
TaikoDifficultyCalculator
and addDifficultStrain
attributes (#31191 by @Lawtrohux) - Increase
accscalingshift
and includecountok
in hit proportion (#31195 by @Lawtrohux) - Remove Conditional
SkillRating
nerf to Converts (#31196 by @Lawtrohux) - Simplify osu! high-bpm acute angle jumps bonus (#30902 by @stanriders)
- Implement
Reading
Skill into osu!taiko (#31208 by @Lawtrohux) - Change slider drop penalty to use actual number of difficult sliders, fix slider drop penalty being too lenient (#31055 by @stanriders)
- Use
lastAngle
when nerfing repeated angles on acute bonus (#31245 by @tsunyoku)
Editor
Change beat snap divisor adjust defaults to be Ctrl+Scroll instead of Ctrl+Shift+Scroll (#31147 by @peppy)
Smaller changes
Framework
- Fix
BindableList
methods crashing with non-IList
collections (ppy/osu-framework#6466 by @smoogipoo) - Move "global" scroll-adjusts-volume to a per-screen component-based implementation (#31146 by @peppy)
- Implement getting OpenGL iOS main framebuffer on SDL3 (ppy/osu-framework#6468 by @Susko3)
- Fix typo in main menu tip (#31224 by @frenzibyte)
- Use Accelerate framework for texture image processing on iOS and fix premultiplication issues (ppy/osu-framework#6470 by @frenzibyte)
- Shave allocation overheads in recent iOS texture loading code (ppy/osu-framework#6471 by @frenzibyte)
Gameplay
Skip the pause cooldown when in intro / break time (#31143 by @peppy)
Implement skinnable mod display (#30993 by @Tom94)
Gameplay (osu!)
Fix some hitcircle sprites missing in certain skins since last release (#31254 by @peppy)
Gameplay (osu!mania)
- Fix "spinner" conversion for mania-specific beatmaps (#30984 by @smoogipoo)
Main Menu
- Load seasonal backgrounds without requiring being logged in (#31198 by @peppy)
- No reason not to.
- Add christmas / seasonal mode (#31206 by @peppy)
- Slightly reduce background brightness at main menu when seasonal lighting is active (#31258 by @peppy)
- Fix adjusting volume using scroll wheel not working during intro (#31259 by @peppy)
Platform
Fix logo animation not rendering correctly on iOS (ppy/osu-resources#351 by @frenzibyte)
Save "featured artists" filter to user settings (#31238 by @frenzibyte)
Also sets it to always on for iOS in preparation for a larger scale release.
Smaller changes
- Update game structure with the returned iOS application delegates (#31152 by @frenzibyte)
- Fix hardware cursor showing on iPadOS when it shouldn't (#31226 by @frenzibyte)
Settings
Add ability to rename the current skin (#31220 by @normalid-awa)
In settings for now, very temporary.
Song Select
Implement ability to mark beatmap as played (#31138 by @bdach)
Would you believe it that this button that has been there for literal years never did anything? Also available via context menu.
Tournament
Hide !mp
commands from tournament streaming chat (#31150 by @peppy)
Full Changelog: 2024.1219.2...2024.1224.1
2024.1219.2
Christmas!
Add Christmas festivities (ppy/osu-resources#350 by @peppy)
One Christmas at a time, we will make lazer the festive paradise it deserves to be.
Special thanks to nekodex for the new track and pishifat for helping make the beatmap that fuels the lighting system. Also to everyone else who gave feedback along the way.
Code Quality
- Update game packages (ppy/osu-server-spectator#250 by @bdach)
- Allow tsunyoku and stanriders to trigger diffcalc spreadsheet generator (#31071 by @smoogipoo)
- Fix potential issues with medal display (#30877 by @peppy)
- Intends to address rare instances of medal display "soft-locking" the game.
- Access beatmap store via abstract base class (#31076 by @peppy)
- Attempt to fix flaky editor beatmap creation test (#31107 by @bdach)
- Update localisations (ppy/osu-resources#349 by @peppy)
- Fix
BindableList
methods crashing with non-IList
collections (ppy/osu-framework#6466 by @smoogipoo)
Editor
Implement basic bookmark support in editor (#30960 by @bdach)
2024-12-03.15-21-03.mp4
Front-loaded as "basic" support because:
- Bookmarks only display on bottom timeline. I thought a bit about having them show on the top timeline too, but I'm not sure I can fit it in there and not make the timeline even more oversaturated with info than it already is.
- Hotkeys from stable work, with slight alterations:
Ctrl
-B
to add a bookmarkCtrl
-Shift
-B
to remove the closest bookmarks (all within 2s of current timestamp)Alt
-β
to seek to previous bookmarkAlt
-β
to seek to next bookmark- The only exposed way to mutate the bookmarks from the UI that is not the hotkey is in the timing menu. That's different from stable where there are bookmark controls near the bottom timeline, but again, not sure how to make that happen without cluttering things further.
Allow choosing different background/audio files for individual difficulties (#30860 by @frenzibyte)
CleanShot.2024-11-27.at.05.36.41-converted.mp4
Smaller changes
- Preserve effect point specifications when creating blank difficulties (#30973 by @frenzibyte)
- Fixes kiai time and scroll speed specifications being lost when creating a new difficulty. Scroll speed specifications are only retained when creating a new difficulty for the same ruleset as the original beatmap.
- Fix adjusting control point offset after undo/redo causing catastrophic failure (#31109 by @peppy)
- Change the way "current" points are hinted on timing screen (#31110 by @peppy)
Gameplay
- Fix player settings overlay cog overlapping skin elements (#31106 by @peppy)
- This brings it down to be in line with the flowing elements that usually do their best to not get in the way.
osu.2024-12-13.at.08.29.32.mp4
Gameplay (osu!)
- Use time-based resume overlay when playing osu! on touchscreen (#31156 by @frenzibyte)
- The "click to resume" overlay does not work on touchscreen devices as the idea is to point with a pointer and press a key / mouse button to resume.
Gameplay (osu!catch)
Add convert to stream functionality for juice streams (#30763 by @Darius-Wattimena)
Gameplay (osu!taiko)
- Update recommended difficulty for osu!taiko (#31103 by @Joehuu)
- Implement considerations for Relax within osu!taiko diffcalc (#30591 by @Lawtrohux)
- Adjust
DifficultyValue
curve to avoid lower star rating of osu!taiko being too inflated (#31067 by @YaniFR)
Multiplayer
Improve multiplayer room status handling (#30838 by @smoogipoo)
Thanks to this change, you can now see whether players in a multiplayer room are currently playing a map or not on the listing.
2024-11-22.20-58-07.mp4
Add ability to filter out currently playing rooms (#31073 by @bdach)
2024-12-11.13-10-42.mp4
Performance
Fix increased CPU usage when game is in the background (ppy/osu-framework#6451 by @smoogipoo)
Smaller changes
- Avoid beatmap lookup per bar in logo visualisation (#31047 by @peppy)
- Improve
BindableList
performance + reduce allocations (ppy/osu-framework#6450 by @smoogipoo)
Platform
Enable beatmap exports on iOS (#31037 by @frenzibyte)
Bump OpenTabletDriver to 0.6.5.0 (ppy/osu-framework#6465 by @jamesbt365)
Pulls in detection & support improvements for tens of tablet models.
Smaller changes
- Fix IPC not working in release (#31000 by @LittleEndu)
- Prefer HDTV / Rec. 709 colorspace for videos with HD resolution and unspecified colorspace (ppy/osu-framework#6403 by @frenzibyte)
- Fix unobserved exceptions on named pipe shutdown (ppy/osu-framework#6447 by @peppy)
- Add descriptions to osu! file associations in iOS (#31035 by @frenzibyte)
- Add support for presenting/opening files on iOS (ppy/osu-framework#6448 by @frenzibyte)
- Use temporary storage for file exports on iOS (#31039 by @frenzibyte)
- Fix multiple instances of a game being allowed to start concurrently (ppy/osu-framework#6452 by @peppy)
- Bring back iOS application delegates and fix many issues (ppy/osu-framework#6453 by @frenzibyte)
- Fix iOS audio session allowing other background audio to mix with game audio (ppy/osu-framework#6457 by @frenzibyte)
- Fix disabling hold-to-right-click not cancelling in-progress actions (ppy/osu-framework#6459 by @frenzibyte)
- Affects mobile devices. Noticed in osu! gameplay, where if you press resume from the pause overlay, a right click is always triggered at the point where the button was clicked:
ScreenRecording_12-15-2024.11-14-24_1.mov
- Fix iOS app configuration missing certain specifications (#31162 by @frenzibyte)
- Fixes some iOS submission guideline failures.
Results
Allow using "quick retry" shortcut in more cases from results screen (#31108 by @peppy)
Fixes "quick retry" hotkey not working for autoplay, but also allows using it for other replays when the replay is already guaranteed to be local (ie. on the second playback).
Skin Editor
Fix player settings overlay appearing while in skin editor (#31105 by @peppy)
Also stops the settings appearing if the mouse is too far away from the window.
Skinning
- Fix lookups of hit circle slider pieces potentially using wrong source skin (#31052 by @peppy)
- Visible on some maps with partial beatmap skins included:
Before | After |
---|---|
UI
Add recommended difficulty numerical value near filter in beatmap listing (#31101 by @Joehuu)
Smaller changes
- Fix top score statistics section total score display being terminally broken (#31041 by @bdach)
- Fixes total score displaying completely wrong and mangled values on languages that use spaces as thousands separators.
- Expose high precision mouse toggle when searching for "sensitivity" and other keywords (#31139 by @peppy)
- Add missing mania tooltip overlay for 4k and 7k (#31084 by @NicholasChin28)
New Contributors
- @NicholasChin28 made their first contribution in #31084
Full Changelog: 2024.1208.0...2024.1219.2
2024.1208.0
Audio
- Improve menu/context-menu sample playback (#30910 by @nekodex)
- Updates menus to use new samples and fixes various cases where samples were previously not being played (e.g. when navigating menubars and submenus)
Chat
Sort public chat channels alphabetically, private channels based on recent messages (#30874 by @peppy)
Code Quality
- Add
DifficultyCalculationUtils
(#30536 by @stanriders) - Hide cursor trail from draw visualiser (#30507 by @smoogipoo)
- Remove field that's used only in one method (#30619 by @Givikap120)
- Update Velopack to 0.0.915 (#30659 by @smoogipoo)
- Fix reference issues in iOS tests (#30729 by @minisbett)
- Build Android with non-maui workflow (#30747 by @smoogipoo)
- Remove
CachedModelDependencyContainer
andOnlinePlayComposite
from multiplayer (#30634 by @smoogipoo) - Add test case covering stability of compatibility export operation (#30795 by @bdach)
- Recreate beatmap every test run in
ModTestScene
(#30819 by @frenzibyte) - Enable NRT for multiplayer and playlists (#30807 by @smoogipoo)
- Add localisation support for menu tip (#30865 by @ItsShamed)
- Update databased room status depending on gameplay state (ppy/osu-server-spectator#249 by @smoogipoo)
- Work around Android CI workflow errors (#30904 by @frenzibyte)
- Centralise supported file extensions to one helper class (#30915 by @bdach)
- Expose more migration helper methods (#30918 by @peppy)
- Stop loudly logging backwards seek bug to sentry (#30928 by @peppy)
- Update localisations (ppy/osu-resources#347 by @peppy)
- Move unnecessary properties from
BeatmapInfo
/ realm toIBeatmap
(#28473 by @bdach) - Use
LocalisationManager.GetLocalisedString()
instead of bindable hack (#30965 by @Susko3) - Set up-to-date .NET code quality analyzers (#30921 by @huoyaoyuan)
Editor
Fix placing objects via touch in editor not working sometimes (#30411 by @frenzibyte)
ScreenRecording_10-23-2024.16-55-59_1.MP4
Collapse sample point indicators into dots if they cannot be displayed in full (#29896 by @OliBomby)
Improve visual appearance of mania selection blueprints (#30512 by @bdach)
This isn't by all means supposed to be the end product, it's 80% of the target result in my mind in 20% of the time. Placement blueprints are all unchanged because attempting to access anything skinnable in the placement blueprint, before there is a DHO placed in an actual column, is hell. So I'm leaving that for later.
before | after |
---|---|
Fix osu!mania notes disappearing on seek to their end time (#30755 by @bdach)
Change some beatmap default settings to match stable (#30826 by @peppy)
- Countdown should be off by default
- Samples match playback rate also
Do not deselect objects when control-clicking without hitting anything (#30947 by @bdach)
I checked a few apps to see what they do in this type of scenario and it's a very mixed bag but I think this behaviour makes sense.
Smaller changes
- Fix slow performance of polygon generation tool (#30214 by @minetoblend)
- Fix timing point truncation causing mis-snaps on compatibility-exported lazer beatmaps (#30607 by @OliBomby)
- Deactivate new combo toggle on deselecting objects (#30756 by @bdach)
- Add snapping info to the osu!catch selected objects inspector (#30766 by @Darius-Wattimena)
- Fix editor grid settings not displaying decimal portion in slider tooltips (#30859 by @frenzibyte)
- Fix hitobjects' samples getting in bad state when changing selection between objects (#30881 by @peppy)
Framework
Bring back borderless mode for macOS and Linux (ppy/osu-framework#6264 by @Susko3)
Smaller changes
- Disable
OnScreenKeyboardOverlapsGameWindow
on iOS when hardware keyboard is attached (ppy/osu-framework#6407 by @frenzibyte) - Use SDL3 text editing events on windows (ppy/osu-framework#6419 by @Susko3)
- Fix
RearrangeableListContainer<>
crashing on replacement operations (ppy/osu-framework#6424 by @smoogipoo) - Remove SourceLink package reference (ppy/osu-framework#6430 by @smoogipoo)
- Make
RearrangeableListContainer<>
only replace differences (ppy/osu-framework#6425 by @smoogipoo) - Factor window scale in
UserInputManager.mouseOutsideAllDisplays
(ppy/osu-framework#6432 by @Susko3) - Work around Android CI workflow errors (ppy/osu-framework#6436 by @frenzibyte)
- Update SDL3 package (ppy/osu-framework#6437 by @smoogipoo)
- Set up-to-date .NET code quality analyzers (ppy/osu-framework#6434 by @huoyaoyuan)
- Clean up
IWindow
and remove platform-agnostic code probingISDLWindow
(ppy/osu-framework#6438 by @Susko3) - Document
CursorEffectContainer
and update outdated name (ppy/osu-framework#6441 by @voidedWarranties) - Update transitive vulnerable dependencies for source generation tests (ppy/osu-framework#6435 by @huoyaoyuan)
- Add callback for when a submenu is opened (ppy/osu-framework#6439 by @nekodex)
- Fix Rider support of .globalconfig (ppy/osu-framework#6444 by @huoyaoyuan)
- Fix recent warnings seen on Rider 2024.3 (ppy/osu-framework#6443 by @frenzibyte)
- Switch to using named pipes for IPC (ppy/osu-framework#6442 by @peppy)
- Allow rewriting URL lookups in
OnlineStore
(ppy/osu-framework#6433 by @frenzibyte)
Gameplay
Increase idle time before gameplay loads when hovering controls (#30602 by @peppy)
Fix occasional flash when quick exiting / retrying from player (#30623 by @peppy)
Don't play fail animation if restarting on fail (#30862 by @frenzibyte)
Fixes red flashes.
Fix pause shortcut on multiplayer no longer requiring hold (#30861 by @frenzibyte)
Add a toggle for star fountains during gameplay (#30894 by @HenintsoaSky)
Adds an option under Gameplay > General that allows users to enable/disable star fountains during gameplay.
Fix "watch replay" button sometimes not loading the replay on first click (#30895 by @peppy)
Delay back button appearance when performing a quick restart (#30863 by @frenzibyte)
Fix quick retry transition from results screen looking a bit wrong (#30970 by @peppy)
Fix score no longer being saved when quick-restarting after pass (#30937 by @frenzibyte)
Smaller changes
- Do not show timing distribution graph in offset control if there's not enough timed hits (#30622 by @bdach)
- Fix black layer not fading fast enough when exiting quickly from quick restart (#30680 by @peppy)
- Fix key counter not updating activation state on initial load (#30718 by @frenzibyte)
- Adjust beat synced animation to be smoother in skip and break overlay (#30794 by @Fivoka)
- Fix beatmap load not continuing when settings slider is focused (#30799 by @peppy)
- Clear previous
LastLocalUserScore
when returning to song select (#30905 by @peppy)
Gameplay (osu!)
Implement new osu! mod "Bloom" (#30299 by @jhk2601)
This mod dynamically adjusts the cursor size as your combo increases, similar to how No Scope functions. The idea is for it to play as a sort of "reverse flashlight". I think it plays well and adds an interesting dynamic where your cursor essentially becomes an obstacle you have to work around sometimes, see attached video to get a better idea.
Bloom.demo.mp4
Gameplay (osu!mania)
Fix stage line alignment in mania not matching stable (#30590 by @frenzibyte)
Before | After |
---|---|
Make mania award SS even if there are GREAT judgements (#29640 by @smoogipoo)
Allow setting osu!mania scroll speed to single decimal precision (#30832 by @peppy)
Gameplay (osu!taiko)
##...
2024.1115.3
A hotfix exclusively for linux users. Note: may require a manual download if your linux install is already borked.
Full Changelog: 2024.1115.2...2024.1115.3
2024.1115.2
Full Changelog: 2024.1115.1...2024.1115.2
2024.1115.1
Audio
New new osu!mania ruleset selection sample (ppy/osu-resources#345 by @nekodex)
Smaller changes
- Fix old looping samples not stopping when replacing a
SkinnableSound
'sSamples
(#30389 by @bdach) - Increase ducking duration when selecting osu!mania ruleset (#30423 by @nekodex)
- Extends the duck duration to sit better with the new longer osu!mania selection sample.
Code Quality
- Enable NRT in
LocalisableStringEqualityComparer
(ppy/osu-framework#6386 by @smoogipoo) - Explicitly set S3 timeouts & retry counts (ppy/osu-server-spectator#246 by @bdach)
- Recommend C# Dev Kit extension on VSCode (#30246 by @Joehuu)
- Clamp scale with lower and upper bounds (#30080 by @OliBomby)
- Improve diffcalc workflow with explicit wait + logs (#30318 by @smoogipoo)
- Update SDL3-CS (ppy/osu-framework#6389 by @hwsmm)
- Update translations (ppy/osu-resources#343 by @peppy)
- Fix argument order in diffcalc workflow (#30319 by @smoogipoo)
- Expose no-op constructors as
protected
(#30335 by @peppy) - Refactor
BeatmapAttributeText
to compute values on the fly (#30320 by @smoogipoo) - Change convert-to-ternary warning to hint (#30373 by @smoogipoo)
- Update all dependencies (ppy/osu-server-spectator#247 by @peppy)
- Move TestTouchInputAfterTouchingComposeArea to separate test scene (#30408 by @OliBomby)
- Ignore casing when matching mods acronyms (#30458 by @smoogipoo)
- Add attribute to hide arbitrary drawables from draw visualiser (ppy/osu-framework#6411 by @smoogipoo)
- Fix texture wrapping not updating when atlas is already bound (ppy/osu-framework#6410 by @Jumprocks1)
- Add better support for adding form file parameters to web requests (ppy/osu-framework#6412 by @bdach)
- Fix intermittent beatmap recommendations test (#30526 by @smoogipoo)
- Replace
MultiplayerRoomComposite
with local bindings (#30525 by @smoogipoo) - Fix up + improve CI test reporting workflow (#30543 by @smoogipoo)
- Allow customising
ScrollContainer
's scrollbar mapping (ppy/osu-framework#6415 by @peppy) - Globalise
CountDifficultStrains
within StrainSkill (#30534 by @Lawtrohux) - Make draw visualiser follow proxied drawables to their visual layer (ppy/osu-framework#6420 by @smoogipoo)
- Allow
CachedModelDependencyContainer
to cache models with non-bindable fields (ppy/osu-framework#6416 by @smoogipoo) - Refactor step buttons + improve assertion messages (ppy/osu-framework#6418 by @smoogipoo)
- Fix error triggered in label step execution not being logged (ppy/osu-framework#6421 by @frenzibyte)
- Fix CI test report workflow (ppy/osu-framework#6422 by @bdach)
- Simplify convertible hitobject parsing and add
IHasLegacyHitObjectType
(#30578 by @smoogipoo)
Difficulty
- Remove estimations where score data is available for osu! difficulty calculations (#27691 by @Finadoggie)
- Cap effective miss count to total hits (#30455 by @smoogipoo)
- osu!taiko: Implement stamina consideration for Mono (single-coloured) patterns. (#30460 by @Lawtrohux)
- osu!taiko: Bring back convert nerf to fix overweighted taiko difficulty (#30456 by @smoogipoo)
- Reset
effectiveMissCount
when calculating pp (#30518 by @Givikap120) - Split diffcalc workflow to add concurrency group (#30566 by @smoogipoo)
- Clamp estimateImproperlyFollowedDifficultSliders for lazer scores (#30544 by @Finadoggie)
- Fix NaN PP counter values while SR is 0 (#30618 by @Natelytle)
- Clamp estimateImproperlyFollowedDifficultSliders for lazer scores (#30544 by @Finadoggie)
Editor
Add key binding for cycling grid type (#26303 by @OliBomby)
Using the tool boxes on the right frequently is quite annoying, so I also added a keybind for cycling the grid type (H). I chose this key because its right next to the grid spacing cycle hotkey (G) and unused. It makes sense to group the grid property changing hotkeys physically close on the keyboard. An alternative hotkey could be like Shift+G or Shift+G, Ctrl+G is taken.
There's also a test for the grid placement tool in here which apparently got left behind when I was splitting up this PR into parts. I guess it can't hurt to have it so here it is.
Fix drawing slider with touch inserts a random control point at beginning (#30263 by @frenzibyte)
Add toggles and hotkeys for configuring sample addition bank (#28863 by @OliBomby)
This PR adds a new left toolbox for configuring the sample addition bank of the selected hit objects. The toggles for the sample bank now only affect the hitnormal sample of the selection.
The hotkeys are Alt-Q~R
. This differs from stable's Ctrl-Q~R
because those hotkeys are already taken by other tools in lazer.
Using Alt-Shift-Q~R
sets both sample bank and sample addition bank simultaneously, like previous functionality.
The same hotkeys are also added to the sample edit popover on the timeline.
Improve scale/rotate popover UX to better match user expectation (#30315 by @OliBomby)
Added keyboard step values to the slider bars which match the keyboard step in stable. This is especially nice to use with ppy/osu-framework#6390
Also made the popovers close when you press Enter (or Spacebar). This matches the behaviour in stable so now all the scale/rotate muscle memory should carry over nicely to lazer.
Add support for "auto" sample bank additions in the editor (#29648 by @OliBomby)
Keep sidebars expanded by default (#30387 by @peppy)
They will not only contract if the user chooses to have them contract (new setting in the View
menu) or if the game isn't wide enough to allow full interaction with the playfield while they are expanded.
Allow scaling down to 5% in popover scale dialog (#30482 by @peppy)
Remember origin settings for scale/rotation popover (#30484 by @peppy)
Fix drum roll editor blueprint size & input handling (#30511 by @bdach)
2024-11-05.13-09-55.mp4
Fix effect point scroll speeds below 0.1x not being encoded properly (#30509 by @bdach)
Add ability to hide breaks from timeline (#30505 by @peppy)
This was another IRL request from a mapper / team member. The rationale here is that it can be very annoying to map with break time enabled if you have a large gap in the beatmap you are trying to fill with hitobjects, as you are placing objects on top of a very gray area:
osu.2024-11-05.at.04.06.40.mp4
Add ability to automatically move already-placed objects when changing timing settings (#28382 by @Hecatia-Lapislazuli)
Smaller changes
- Fix split control point context menu option not showing up on newly created control points (#30189 by @OliBomby)
- Ensure at least one scale popover axis is active at any time (#30219 by @bdach)
- Add breathing room to seek back between control points in editor (#30328 by @TaterToes)
- Fix timeline blueprints sometimes causing crashes due to current placement blueprint becoming unsorted (#30377 by @bdach)
- Fix osu!mania flip operations sometimes not preserving selection in mania editor (#30284 by @bdach)
- Fix several cases of deselection not correctly terminating drag operations on slider selection blueprint (#30294 by @bdach)
- Fix editor sidebar resizing on hover repeatedly when polygon popover is opened (#30450 by @Joehuu)
- Fix catcher size and hyperdashes indication on adjusting CircleSize (#30300 by @Darius-Wattimena)
- Fix drum rolls losing width on strong state toggle in editor (#30508 by @bdach)
Gameplay
Fix argon song progress bar tooltip showing during active gameplay (#30199 by @bdach)
Decrease the time it takes to quick retry by ~650 ms (#30261 by @peppy)
Removes an arbitrary delay from the quick retry process. Now it is only limited by load speed (which will improve in the future).
Remove hold-to-confirm delay when pausing using keyboard shortcuts (#30309 by @peppy)
This keeps coming up (latest case) so I think we need to listen to users and make this change. Matches stable behaviour.
Make quick restart even faster (#30603 by @peppy)
This is a second pass at refining the quick restart experience.
- More arbitrarily induced delays are culled
- Settings are hidden now (since interacting with them is nigh impossible given the faster restart speed)
- Some animations are hidden to make the process less jarring
- Parallax is disabled to stop the background displacing weirdly
Smaller changes
- Handle mid-play mod changes (ppy/osu-server-spectator#245 by @bdach)
- Do not fall back to beatmap's original ruleset if conversion fails (#30424 by @bdach)
- Fix break overlay grades not using localised string (#30572 by @Joehuu)
- Fix occasional flash when quick exiting / retrying from player (#30623 by @peppy)
Gameplay (osu!)
Fix slider ticks and repeats incorrectly moved to position of head when strict tracking and any conversion mod that moves objects is active (#30281 by @bdach)
Fix cursor rotating with barrel roll mod active (#30326 by @jhk2601)
Some may argue that cursor rotation is intended behavior but it looks odd and feels pretty janky, especially on abnormal cursors like the issue describes. Would be better if cursor rotation could be adjusted in existing switch stat...
2024.1009.1
Code Quality
- Remove poorly-fitted "legacy combo counter" abstraction (#29838 by @bdach)
- Update framework (#29848 by @peppy)
- Make all difficulty calculators use
GetMaxCombo
function (#29962 by @Givikap120) - Fix reflection-related iOS crashes (#29992 by @smoogipoo)
- Fix iOS CI build (#30019 by @smoogipoo)
- Fix usage of locked context without locking (#30074 by @peppy)
- Fix broken star rating on Random mod (#30021 by @bdach)
- Fix several breakages with migration operation (#30151 by @bdach)
Daily Challenge
- Play daily challenge animation when arriving from the notification (#29770 by @Ianlucht)
- Add Total Participation stat to users profile Daily Challenge Tooltip (#29714 by @Crystallized21)
- Exclude restricted users from daily challenge-related queries (ppy/osu-server-spectator#243 by @bdach)
Difficulty
- Refactoring:
SpeedEvaluator
refactoring (#29294 by @Givikap120) - Refactoring: Merged multipliers that do the same thing (#29293 by @Givikap120)
- Refactoring: Removing
DEFAULT_DIFFICULTY_MULTIPLIER
fromOsuStrainSkill
(#29291 by @Givikap120) - Uncap speed OD-accuracy scaling (#30088 by @stanriders)
- A small fix to make accuracy scaling on low ODs a bit more harsh
- Various speed distance difficulty calculation changes (#29980 by @tsunyoku)
- Make diffcalc workflow recreate comment on completion (#30132 by @smoogipoo)
- Implement a bunch of rhythm difficulty calculation fixes (#28871 by @stanriders)
- Slight aim skill multiplier rebalance (#29998 by @tsunyoku)
- Include sliders in accuracy pp if slider head accuracy is in use (#27063 by @tsunyoku)
- Save
master
state when running diffcalc workflow (#30135 by @smoogipoo) - Remove combo scaling from Aim and Speed from osu! performance calculation (#16280 by @apollo-dw)
- Statistical accuracy PP and difficulty scaling for the osu!taiko ruleset (#20963 by @Natelytle)
- Bump difficulty calculator versions (#30139 by @bdach)
- In order for the new star difficulty to be shown to users on the next release.
Editor
Make editor flip, rotate, and scale tools revolve around the grid center (#26311 by @OliBomby)
Changes how the Ctrl+H and Ctrl+J flip mechanic works. It now takes into account the origin and rotation of the grid to flip around that axis. This makes it easy to map symmetric patterns which are off-angle or not around the center of the playfield.
Also the Ctrl+R rotation tool uses the grid origin as the center of the playfield.
The precision scale tool uses the grid origin as the center of the playfield and uses the grid rotation for axis constrained scaling (for scaling only along the X or Y axis)
Fix scaling sliders ignoring the scale origin (#29942 by @minetoblend)
Makes sure that when scaling sliders with the scale box, they are scaled relatively to the scale origin instead of the slider head.
2024-09-20.17-15-02.mp4
Freeze select box buttons position on press (#29950 by @minetoblend)
Will freeze the position of the SelectBox
buttons in place when one of the buttons was clicked until the clicked button is no longer hovered. This ensures that buttons can be pressed repeatedly without having to reposition the mouse on every click.
Especially when rotating the selection by 90 degrees, the buttons moving around on each press was a major pain point for me since I often wanna rotate by 180 degrees and just wanna double click the button for that.
2024-09-21.14-57-25.mp4
Support scaling around center when scaling with select box (#29949 by @minetoblend)
Will scale around the center when pressing alt while scaling things with the select box.
2024-09-21.14-18-19.mp4
2024-09-21.14-23-38.mp4
Add to existing selection when dragging with control pressed (#29918 by @bdach)
2024-09-18.15-28-13.mp4
Add button to centre editor grid to current hit object (#30069 by @peppy)
osu.2024-10-01.at.06.22.22.mp4
Add hotkey hints to editor menus (#29691 by @bdach)
2024-09-04.12-26-32.mp4
Redesign editor setup screen with new "form" controls (#30099 by @bdach)
2024-10-03.13-55-55.mp4
Also contains some assorted drive-by fixes. See commit messages for details.
Move setup screen background preview to appropriate form control (#30109 by @bdach)
2024-10-04.11-11-52.mp4
When adding a new combo colour, use the last colour as a starting point (#30110 by @peppy)
Also opens the popover automatically because you always want to edit it.
osu.Game.Tests.2024-10-04.at.09.43.55.mp4
Smaller changes
- Fix timing points being blocked by buttons in the editor (#29766 by @SchiavoAnto)
- Fix slider end drag marker being in incorrect position for stacked sliders (#29893 by @bdach)
- Fix occasional crash when changing samples of hitobjects (#29933 by @bdach)
- Refactor placement blueprints to not be limited to hit objects (#29986 by @OliBomby)
- This makes it possible to make placement tools which add something other than a hit object.
- Fix argon volume-aware hitsounds not correctly playing immediately after object placement (#29970 by @bdach)
- Use minimum enclosing circle as selection centre for scale and rotate (#29938 by @OliBomby)
- Ensure selection is preserved when moving selected objects between osu!mania columns (#29899 by @bdach)
- Ensure sliders are snapped when changing path types (#30063 by @bdach)
- Fix various distance snap grid weirdness around unsnapped objects (#30062 by @bdach)
- Fix editor timestamp URLs not working when they contain a space (#30024 by @peppy)
- Initialise colours section with default combo colours if none present (#30108 by @bdach)
- Fix improper handling of decimal separator in "form" number boxes / sliders (#30113 by @bdach)
- Only allow seek to next/previous object via keybinding if there is no selection (#29860 by @bdach)
- Fixes a key bind conflict.
- Fix "Center on selected object" button not changing grid coordinates (#30134 by @bdach)
- Add grid placement tool (#26313 by @OliBomby)
- Adds the 'Grid' placement tool to the left tool box. Hover it for details on how to use (there's a few different ways you can make use of this powerful tool).
osu._k6UmTIJN2n.mp4
Framework
- Fix typo in
CompositeDrawable
(ppy/osu-framework#6372 by @Nebula-Developer) - Remove closure allocations in VeldridStagingTexturePool (ppy/osu-framework#6373 by @smoogipoo)
- Update SDL3-CS (ppy/osu-framework#6374 by @hwsmm)
- Expose
LocalisationManager.GetLocalisedString()
as public (ppy/osu-framework#6377 by @bdach) - Fix
DecouplingFramedClock
retaining old lastSeekFailed (ppy/osu-framework#6378 by @hwsmm) - Fix iOS CI build (ppy/osu-framework#6379 by @smoogipoo)
- Rollback iOS workload to last known working version (ppy/osu-framework#6384 by @smoogipoo)
- Expose slider bar commit method as virtual (ppy/osu-framework#6383 by @bdach)
- Add
NineSliceSprite
(ppy/osu-framework#6380 by @minetoblend)
Gameplay
Add progress tooltip for ArgonSongProgressBar (#30078 by @CloneWith)
Smaller changes
- Implement beat-synchronized animation in skip overlay (#29925 by @nekupaw)
- Fix score being cloned in async method causing random errors (again) (#29966 by @bdach)
- Continue displaying storyboard even if fully dimmed in specific circumstances (#29967 by @bdach)
- Avoid client updates (and update notifications) from appearing in more gameplay cases (#30073 by @peppy)
Gameplay (osu!)
Fix several issues in interactions between playfield-altering mods and the replay analysis feature (#29841 by @bdach)
Gameplay (osu!catch)
Fix osu!catch fruit rotation animation being applied too late (#29894 by @peppy)
Now Playing
Shuffle playback order in global playlist by default (#29917 by @bdach)
Performance
- Update shader preloader with missing shader usages (#30018 by @peppy)
- Fix difficulty settings sliders attempting to reprocess all hitobjects on every instantaneous change (#30114 by @bdach)
Platform
Rollback iOS workload to last known working version (#30121 by @smoogipoo)
We can build iOS again, yay!
Smaller changes
- Differentiate osu!lazer app name in windows menus (#29822 by @smallketchup82)
- Fix restart notifications appearing every 30 minutes in some cases (#29787 by @peppy)
- Completely disable Velopack when using an external updater (#29805 by @smallketchup82)
- Add beatmap icon to windows beatmap files (#29812 by @smallketchup82)
- Update velopack and switch to using async version of
WaitExitThenApplyUpdates
(#29997 by @peppy) - Hide iOS home indicator by default (ppy/osu-framework#6385 by @smoog...