Repository Analysis

ppy/osu

rhythm is just a *click* away!

1.9 Likely human-written View on GitHub
1.9
Adjusted Score
1.9
Raw Score
100%
Time Factor
2026-05-28
Last Push
18,428
Stars
C#
Language
596,829
Lines of Code
4991
Files
888
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 23HIGH 0MEDIUM 3LOW 862

Pattern Findings

888 matches across 7 categories. Click a row to expand file-level details.

Over-Commented Block823 hits · 822 pts
SeverityFileLineSnippet
LOWosu.Game/OsuGameBase.cs181
LOWosu.Game/OsuGame.cs581 Logger.Log($"The requested channel \"{channel}\" does not exist");
LOWosu.Game/OsuGame.cs681 Logger.Log("The requested skin could not be loaded.", LoggingTarget.Information);
LOWosu.Game/OsuGame.cs861 //
LOWosu.Game/Storyboards/IStoryboardElement.cs41 /// </summary>
LOWosu.Game/Storyboards/IStoryboardElementWithDuration.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Storyboards/Storyboard.cs21 public BeatmapInfo BeatmapInfo { get; set; } = new BeatmapInfo();
LOWosu.Game/Storyboards/Storyboard.cs41 .Where(e => e is not StoryboardVideo)
LOWosu.Game/Storyboards/Commands/IStoryboardCommand.cs21
LOWosu.Game/Database/IModelManager.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Database/IModelManager.cs21 bool Delete(TModel item);
LOWosu.Game/Database/IModelManager.cs41 /// <summary>
LOWosu.Game/Database/RealmAccess.cs61 /// 8 2021-10-29 Rebind scroll adjust keys to not have control modifier.
LOWosu.Game/Database/RealmAccess.cs81 /// 28 2023-06-08 Added IsLegacyScore to ScoreInfo, parsed from replay files.
LOWosu.Game/Database/RealmAccess.cs101 /// 49 2025-06-10 Reset the LegacyOnlineID to -1 for all scores that have it set to 0 (which is semanticall
LOWosu.Game/Database/RealmAccess.cs121 /// will unregister the subscription from realm.
LOWosu.Game/Database/RealmAccess.cs601 result = await realm.WriteAsync(() => action(realm)).ConfigureAwait(false);
LOWosu.Game/Database/RealmAccess.cs641 }
LOWosu.Game/Database/StandardisedScoreMigrationTools.cs261 /// <remarks>
LOWosu.Game/Database/StandardisedScoreMigrationTools.cs381 + 500000 * Math.Pow(score.Accuracy, 5)
LOWosu.Game/Database/StandardisedScoreMigrationTools.cs401 double maximumAchievableComboPortionInScoreV1 = Math.Pow(maximumLegacyCombo, 2);
LOWosu.Game/Database/StandardisedScoreMigrationTools.cs441 // This time, divide the remaining combo among remaining objects equally to achieve longest possible
LOWosu.Game/Database/StandardisedScoreMigrationTools.cs541 /// For catch, the general method of calculating the combo proportion used for other rulesets is generally usele
LOWosu.Game/Database/ImportParameters.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Database/RealmArchiveModelImporter.cs21using Realms;
LOWosu.Game/Database/RealmArchiveModelImporter.cs41 /// </summary>
LOWosu.Game/Database/RealmArchiveModelImporter.cs521 prefix = string.Empty;
LOWosu.Game/Database/RealmArchiveModelImporter.cs541 /// <param name="archive">The archive to use as a reference for population. May be null.</param>
LOWosu.Game/Database/RealmArchiveModelImporter.cs561 protected virtual void PostImport(TModel model, Realm realm, ImportParameters parameters)
LOWosu.Game/Database/RealmArchiveModelImporter.cs581 protected virtual bool CanSkipImport(TModel existing, TModel import) => true;
LOWosu.Game/Database/IModelDownloader.cs21 /// </summary>
LOWosu.Game/Database/RealmObjectExtensions.cs261 /// This adds osu! specific thread and managed state safety checks on top of <see cref="IRealmCollection{T}.Subs
LOWosu.Game/Database/RealmObjectExtensions.cs281 /// Notifications are delivered via the standard event loop, and so can't be delivered while the event loop is b
LOWosu.Game/Database/RealmObjectExtensions.cs321 /// <summary>
LOWosu.Game/Database/RealmObjectExtensions.cs341 // In this usage, the instance may be non-managed in tests.
LOWosu.Game/Database/OnlineLookupCache.cs21 {
LOWosu.Game/Database/LegacyExporter.cs21 /// Handles exporting models to files for sharing / consumption outside the game.
LOWosu.Game/Database/LegacyExporter.cs121 /// <param name="cancellationToken">A cancellation token.</param>
LOWosu.Game/Database/IModelFileManager.cs21 /// Delete an existing file.
LOWosu.Game/Database/IModelImporter.cs21 /// <param name="notification">The notification to update.</param>
LOWosu.Game/Database/IModelImporter.cs41 /// When editing is completed, call Finish() on the returned operation class to begin the import-and-update proc
LOWosu.Game/Database/BeatmapStore.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Database/BeatmapStore.cs21 {
LOWosu.Game/Database/Live.cs21 /// <param name="perform">The action to perform.</param>
LOWosu.Game/Database/ICanAcceptFiles.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Database/ICanAcceptFiles.cs21 /// <param name="paths">The files which should be imported.</param>
LOWosu.Game/Database/INamedFileUsage.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Configuration/SessionStatics.cs61 /// Info about seasonal backgrounds available fetched from API - see <see cref="APISeasonalBackgrounds"/>.
LOWosu.Game/Configuration/SessionStatics.cs81 /// </summary>
LOWosu.Game/Skinning/LegacyColourCompatibility.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Skinning/ISkin.cs21 /// <returns>A drawable representation for the requested component, or null if unavailable.</returns>
LOWosu.Game/Skinning/ISkin.cs41 /// Retrieve a <see cref="SampleChannel"/>.
LOWosu.Game/Skinning/ISerialisableDrawableContainer.cs21
LOWosu.Game/Skinning/SkinManager.cs221 CurrentSkinInfo.Value = skins[i];
LOWosu.Game/Skinning/SkinnableSound.cs21 public partial class SkinnableSound : SkinReloadableDrawable, IAdjustableAudioComponent
LOWosu.Game/Skinning/ISkinSource.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Skinning/ISkinSource.cs21 {
LOWosu.Game/Skinning/ISkinComponentLookup.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Skinning/LegacyManiaSkinConfigurationLookup.cs1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
LOWosu.Game/Skinning/SkinReloadableDrawable.cs41 }
763 more matches not shown…
Hallucination Indicators23 hits · 265 pts
SeverityFileLineSnippet
CRITICALosu.Game.Tournament/Screens/MapPool/MapPoolScreen.cs222 if (CurrentMatch.Value.Round.Value.Beatmaps.All(b => b.Beatmap?.OnlineID != beatmapId))
CRITICALosu.Game/Overlays/Login/LoginPanel.cs126 linkFlow.AddLink(Resources.Localisation.Web.CommonStrings.ButtonsCancel.ToLower(), api.Logout, strin
CRITICALosu.Game/Screens/Edit/Verify/IssueTable.cs226 issueCategoryText.Text = Current.Value.Check.Metadata.Category.ToString();
CRITICAL…e.Tests/Visual/Navigation/TestSceneScreenNavigation.cs333 foreach (var file in Game.Beatmap.Value.BeatmapSetInfo.Files.Where(f => Path.GetExtension(f.Filename
CRITICAL…e.Tests/Visual/Navigation/TestSceneScreenNavigation.cs368 foreach (var file in Game.Beatmap.Value.BeatmapSetInfo.Files.Where(f => Path.GetExtension(f.Filename
CRITICAL…sts/Visual/Gameplay/TestSceneCompletionCancellation.cs73 * at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
CRITICAL…isual/Gameplay/TestSceneGameplaySampleTriggerSource.cs213 Player.DrawableRuleset.Playfield.HitObjectContainer.AliveObjects.FirstOrDefault();
CRITICAL…sts/Visual/Gameplay/TestSceneNightcoreBeatContainer.cs27 AddStep("change signature to quadruple", () => Beatmap.Value.Beatmap.ControlPointInfo.TimingPoints.ForEach(p
CRITICAL…sts/Visual/Gameplay/TestSceneNightcoreBeatContainer.cs28 AddStep("change signature to triple", () => Beatmap.Value.Beatmap.ControlPointInfo.TimingPoints.ForEach(p =>
CRITICAL…s/Visual/UserInterface/TestSceneBeatSyncedContainer.cs155 ControlPoint expectedEffectPoint = Beatmap.Value.Beatmap.ControlPointInfo.EffectPoints.First(ep => ep.Ki
CRITICAL…Game.Tests/Visual/Online/TestSceneBeatmapSetOverlay.cs202 () => overlay.Header.HeaderContent.Picker.Difficulties.All(b => b.Beatmap.Ruleset.OnlineID == overlay.He
CRITICAL…Game.Tests/Visual/Online/TestSceneBeatmapSetOverlay.cs203 AddAssert("left-most beatmap selected", () => overlay.Header.HeaderContent.Picker.Difficulties.First().State
CRITICAL….Game.Tests/Visual/Multiplayer/TestSceneMultiplayer.cs405 * at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
CRITICALosu.Game.Rulesets.Osu.Tests/TestSceneReplayRecording.cs60 AddStep("move cursor to circle", () => InputManager.MoveMouseTo(Player.DrawableRuleset.Playfield.HitObjectCo
CRITICALosu.Game.Rulesets.Osu.Tests/TestSceneReplayRecording.cs67 AddStep("move cursor to circle", () => InputManager.MoveMouseTo(Player.DrawableRuleset.Playfield.HitObjectCo
CRITICALosu.Game.Rulesets.Osu.Tests/TestSceneReplayRecording.cs74 AddStep("move cursor to circle", () => InputManager.MoveMouseTo(Player.DrawableRuleset.Playfield.HitObjectCo
CRITICALosu.Game.Rulesets.Osu.Tests/TestSceneReplayRecording.cs85 AddStep("move cursor to circle", () => InputManager.MoveMouseTo(Player.DrawableRuleset.Playfield.HitObjectCo
CRITICALosu.Game.Rulesets.Osu.Tests/TestSceneSliderSnaking.cs73 * at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
CRITICALosu.Game.Rulesets.Osu.Tests/TestSceneSliderSnaking.cs107 * at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
CRITICAL…e.Rulesets.Osu.Tests/Editor/TestSceneObjectBeatSnap.cs32 double firstTimingPointTime() => Beatmap.Value.Beatmap.ControlPointInfo.TimingPoints.First().Time;
CRITICALosu.Game.Rulesets.Osu.Tests/Editor/TestSliderScaling.cs36 AddStep("seek to first timing point", () => EditorClock.Seek(Beatmap.Value.Beatmap.ControlPointInfo.TimingPo
CRITICAL…sets.Osu.Tests/Editor/TestSceneSliderLengthValidity.cs32 AddStep("seek to first timing point", () => EditorClock.Seek(Beatmap.Value.Beatmap.ControlPointInfo.TimingPo
CRITICAL…Rulesets.Osu.Tests/Editor/TestSceneObjectObjectSnap.cs30 AddStep("seek to first control point", () => EditorClock.Seek(Beatmap.Value.Beatmap.ControlPointInfo.TimingP
Fake / Example Data35 hits · 46 pts
SeverityFileLineSnippet
LOW…Game.Tests/Visual/UserInterface/TestSceneFormButton.cs78 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod t
LOW…Game.Tests/Visual/UserInterface/TestSceneFormButton.cs78 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod t
LOW…Game.Tests/Visual/UserInterface/TestSceneFormButton.cs111 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod t
LOW…Game.Tests/Visual/UserInterface/TestSceneFormButton.cs111 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod t
LOW…Game.Tests/Visual/UserInterface/TestSceneFormButton.cs118 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod t
LOW…Game.Tests/Visual/UserInterface/TestSceneFormButton.cs118 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod t
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs233 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs233 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs240 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs240 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs245 Caption = "Lorem ipsum dolor sit amet, conse adipiscing elit, sed do eiusmod
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs245 Caption = "Lorem ipsum dolor sit amet, conse adipiscing elit, sed do eiusmod
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs258 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs258 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs263 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs263 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs269 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…me.Tests/Visual/UserInterface/TestSceneFormControls.cs269 Caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do e
LOW…/Visual/UserInterface/TestSceneOsuMarkdownContainer.cs163 @"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lab
LOW…/Visual/UserInterface/TestSceneOsuMarkdownContainer.cs163 @"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lab
LOWosu.Game.Tests/Visual/Online/TestSceneNewsOverlay.cs68 Preview = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
LOWosu.Game.Tests/Visual/Online/TestSceneNewsOverlay.cs68 Preview = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
LOWosu.Game.Tests/Visual/Online/TestSceneNewsOverlay.cs91 Preview = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
LOWosu.Game.Tests/Visual/Online/TestSceneNewsOverlay.cs91 Preview = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
LOWosu.Game.Tests/Visual/Online/TestSceneNewsCard.cs35 Preview = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidi
LOWosu.Game.Tests/Visual/Online/TestSceneNewsCard.cs35 Preview = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidi
LOWosu.Game.Tests/Visual/Online/TestSceneHomeNewsPanel.cs36 Preview = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidi
LOWosu.Game.Tests/Visual/Online/TestSceneHomeNewsPanel.cs36 Preview = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidi
LOWosu.Game.Tests/Visual/Online/TestSceneHomeNewsPanel.cs51 Title = "Title of this post is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed
LOWosu.Game.Tests/Visual/Online/TestSceneHomeNewsPanel.cs51 Title = "Title of this post is Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed
LOW….Tests/Visual/Online/TestSceneWikiMarkdownContainer.cs172# Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam efficitur laoreet posuere. Ut accumsan tortor in ipsum
LOW….Tests/Visual/Online/TestSceneWikiMarkdownContainer.cs172# Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam efficitur laoreet posuere. Ut accumsan tortor in ipsum
LOW….Tests/Visual/Online/TestSceneStandAloneChatDisplay.cs397 AddStep("send lorem ipsum", () => testChannel.AddNewMessages(new Message(messageIdSequence++)
LOW….Tests/Visual/Online/TestSceneStandAloneChatDisplay.cs400 Content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce et bibendum velit.",
LOW….Tests/Visual/Online/TestSceneStandAloneChatDisplay.cs400 Content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce et bibendum velit.",
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippet
MEDIUMosu.Game/Screens/Select/PanelSetBackground.cs147 // This allows a more seamless experience when a user is scrolling at a moderate speed, as we are load
MEDIUMosu.Game/Graphics/Containers/SectionsContainer.cs210 // implementation similar to ScrollIntoView but a bit more nuanced.
MEDIUMosu.Game.Rulesets.Osu/OsuInputManager.cs48 // Based on user feedback of more nuanced scenarios (where touch doesn't behave as expected),
Slop Phrases2 hits · 2 pts
SeverityFileLineSnippet
LOWosu.Game.Tests/Chat/MessageFormatterTests.cs497 Content = "This is a [http://www.simple-test.com simple test] with some [traps] and [[wiki links]]. Don'
LOWosu.Game.Tests/Chat/MessageFormatterTests.cs500 ClassicAssert.AreEqual("This is a simple test with some [traps] and wiki links. Don't forget to visit https:
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippet
LOWosu.Game/Online/Chat/MessageFormatter.cs119 // therefore we need to check if any of the pre-existing links contains the raw one we found
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippet
LOWosu.Game.Tests/Visual/RankedPlay/RankedPlayTestScene.cs47 public class BeatmapRequestHandler